docs(arc42): nine sites credit the bake to check-self-bootstrap, which never grades the baked value #1561

Closed
opened 2026-10-06 11:37:54 +02:00 by claude · 2 comments
Member

#1512 left the arc42 "483d guard" framing out of scope. In nine places, arc42 says check-self-bootstrap guards the bake: it "blob-compares HEAD-vs-pinned" and so catches the "483d regression" (a botched bake that leaves an rc tag's marker at 'main', so a run pinned to that tag checks the toolkit out from main). This issue measures what actually guards the bake today, in each posture, and corrects those sites.

Measured

All reads are on live origin/main 6a36090, 2026-10-06.

1. check-self-bootstrap cannot tell a botched bake from a correct one, in either posture.

  • Under @main it returns before comparing any file (cmd/rt/check_self_bootstrap.go:199, the #456 floating-pin exit).
  • Under a tag pin it compares each guarded file after gates.NormalizeBakeMarker has replaced every baked value with a placeholder (internal/gates/selfboot_check.go:125-141). That is deliberate (#184): the value differs between HEAD and the pinned ref by design. It also means the value is never graded.
  • Probe on a throwaway clone of 6a36090, every wrapper moved to the tag, then rt check-self-bootstrap:
Tag What its four markers hold check-self-bootstrap build-ref-check --ref <tag>
v9.9.8-rc.1, baked with rt build-bake --commit 'v9.9.8-rc.1' rc=0, "OK: all compose-scripts at HEAD match" rc=0, PASS 4/4
v9.9.9-rc.1, tagged at main unbaked (the 483d shape) 'main' rc=0, same OK line rc=1, marker holds "main", want "v9.9.9-rc.1" for all 4 files
v9.9.7-rc.1, marker comment removed from reusable-release.yml 'main' rc=1, names reusable-release.yml rc=1

So the check catches a removed or moved marker (#184), not a wrong value.

2. build-ref-check is the gate that grades the baked value. It runs after the tag exists.

  • .forgejo/workflows/build-ref-check.yml:16-19 fires on push: tags: ['v*'], so an rc tag (vX.Y.Z-rc.N) triggers it too. Each run first asserts that v1.0.0-alpha.0 is still refused (positive control).
  • On the forge it has run on each of the 11 cut tags from v0.62.0 (2026-09-06) to v0.67.0, all reported success. Before that, #1361's runner label kept it from running. I read one log (run 19897, v0.67.0): PASS v0.67.0 - all 4 marker-carrying canonical file(s) carry v0.67.0.
  • It has never graded an rc tag on the forge. git ls-remote --tags origin '*-rc*': the newest rc tag is still v0.30.0-rc.2 (2026-07-07), two months before the first run.
  • Graded locally over all 128 v* tags: 83 pass, 40 could-not-grade (the reusables had other names then), 5 refused:
    • v1.0.0-alpha.0 (2026-07-25, not on main's history): every marker holds 'main'. This is the 483d class on a published tag, and it is build-ref-check's positive control.
    • v0.57.1 to v0.57.4: reusable-recover-pending-cut.yml holds 'v0.57.0', a stale value rather than main (#1173; that file was missing from the bake list).
  • The 8 gradable rc tags (v0.18.0-rc.1 to v0.30.0-rc.2) all pass.

3. The resolve step's #1222 fallback defuses a 'main' marker at run time.

  • In all four baked reusables, a caller pinned to anything other than main or a full SHA, whose fetched reusable holds an empty or 'main' marker, checks out its own pin instead (reusable-release.yml:344, reusable-recover-pending-cut.yml:217, reusable-prepared-uncut-check.yml:210, reusable-pr-gates.yml:341). A 483d-shaped rc tag would therefore run its own scripts, not main's.
  • It does not cover a stale non-main value: that wins as baked (the v0.57.x case above).
  • Mutant B1 removed || "$REF" == "main" from reusable-release.yml:344. It is killed by tests/bootstrap-rt.bats test 165, whose short-SHA case feeds every reusable a baked 'main'. Baseline: 0 failures across workflows.bats, pr-gates.bats and bootstrap-rt.bats.

4. The bake's Go tests.

Four mutants, each run against go test ./cmd/rt/ ./internal/selfboot/ ./internal/bake/ (baseline: all three ok):

Mutant Result
M3: the bake kernel (internal/bake/marker.go, rewriteMarker) writes 'main' whatever ref it is given killed by 16 tests, e.g. TestRewriteMarker_Canonical, TestBake_TreeCarriesRewrittenRef, TestBuildBakeRewriteInPlace
M2: selfboot.CommitBake bakes 'main' instead of the requested ref killed by 5 tests, e.g. TestCommitBake_TreeCarriesRewrittenRef, TestRoundTrip_ThreeActorBootstrap
M1: rt repin's own call (cmd/rt/repin.go, realBake) passes 'main' instead of the rc tag survives. No test exercises realBake; the repin tests inject stubBake
M4: the same call passes a stale 'v0.57.0' survives, for the same reason

So the kernel and the detached commit are pinned, but rt repin's wiring into them is not. A re-pin that passed the wrong ref would be caught only by build-ref-check once the tag is pushed.

5. Two citations are wrong.

  • 11-risks-technical-debt.md:14 credits the single-ref check to register-check. git grep 'AlignRefs(': the only caller is cmd/rt/check_self_bootstrap.go:169. rt register-check is the vocabulary gate (#392, cmd/rt/register_check.go:41-43). 05-building-block-view.md:134 makes the same attribution.
  • 02-constraints.md:24 (OC-4) cites AGENTS.md:131. Before #1511 that line was §2.5's step 2; today it is a §2 build-bake sentence. The claim it supports is in AGENTS.md §2.3 (where the check runs) and §2.5 (it runs regardless of who opened the PR). It runs as gate g10 of toolkit-self-gates.yml on every PR to main, and the rolling release-prep/ PR is exempt (#304).

Sites that credit the bake to check-self-bootstrap (the six #1512 listed, plus three a sweep found):

# Where Claim
1 01-introduction-goals.md:46 "a botched bake is caught by a gate (the 483d regression), not shipped"
2 04-solution-strategy.md:46 check-self-bootstrap blob-compares and fails loud (the 483d guard)
3 05-building-block-view.md:218 the detached-commit machinery and "the 483d regression it guards"
4 07-deployment-view.md:92-94 the gate blob-compares and fails loud on drift (the 483d regression)
5 08-crosscutting-concepts.md:21-24 "The 483d guard", "on every PR regardless of author"
6 10-quality-requirements.md:43 (Q7) the blob compare fails loud on a botched bake "before it ships"
7 10-quality-requirements.md:44 (Q8) the check goes red after a compose-script PR merges. Under @main it does not (§2.1); #1512 corrected 7.3 and 11.1 but not this row
8 11-risks-technical-debt.md:12 blob-compare guards it "every PR, any author"
9 12-glossary.md:28 "guarded by check-self-bootstrap's blob-compare"

Why it matters

arc42 is where a reader learns which gate holds which property. It names a gate that does not grade the baked value, and it leaves out the two mechanisms that do. A reader who trusts it could weaken build-ref-check or the #1222 fallback, believing check-self-bootstrap has the case covered.

The "before it ships" wording also overstates things. build-ref-check detects a bad tag after it is pushed; nothing refuses one beforehand. Under a deliberate tag pin, the rc path has never run with build-ref-check in place.

Acceptance criteria

  • Each of the nine sites above says what guards the bake in each posture, as AGENTS.md §2.2 frames them: under @main, rt prep bakes cut tags and build-ref-check grades them on push; under a deliberate tag pin (dormant), rt repin bakes an rc tag, build-ref-check would grade it on push but never has, and the #1222 fallback defuses a 'main' marker. None of them credits check-self-bootstrap with grading the baked value. — DONE @ #1562 (c2fad81, reviewed as c2fad81). All nine were rewritten in 7861f71. §8.1 carries the full posture split (under @main, under a deliberate tag pin, at run time, and the Go tests in both postures). The two quality-goal rows (§1.3, §4.3) name build-ref-check and the #1222 fallback and point to §8.1 rather than repeating the split. git grep -n -i '483d|blob-compare' origin/main -- docs/architecture/arc42/ at c2fad81: no line credits check-self-bootstrap with grading the baked value, and "blob-compare" no longer appears.
  • §8.1 states what check-self-bootstrap does guard (wrapper alignment, then pin drift under a tag pin, including a removed or moved marker) and why it cannot grade the value (NormalizeBakeMarker). — DONE @ #1562 (c2fad81, reviewed as c2fad81). New bullet "What check-self-bootstrap guards": wrapper alignment (gates.AlignRefs), the @main early return, pin drift under a tag pin including a removed or moved marker (#184), and gates.NormalizeBakeMarker as the reason it cannot tell a correct bake from a botched one.
  • Q7 says the bad tag is detected after it is pushed, not before it ships, and names where that is verified. — DONE @ #1562 (c2fad81, reviewed as c2fad81). Q7 now reads "build-ref-check fails loud on the tag push ... That is after the tag exists, not before it ships", verified by cmd/rt/build_ref_check_test.go, the workflow's v1.0.0-alpha.0 positive control, and the #1222 fallback in tests/bootstrap-rt.bats and tests/workflows.bats. Q8 was corrected too (the post-merge red is tag-pin only).
  • 11-risks-technical-debt.md:14 and 05-building-block-view.md:134 attribute the single-ref check to rt check-self-bootstrap (gates.AlignRefs), and 05's register-check row says what that gate checks. — DONE @ #1562 (c2fad81, reviewed as c2fad81). §11.1's row is now "check-self-bootstrap single-ref assumption" and names gates.AlignRefs as having that one caller. §5's check-self-bootstrap row lists wrapper alignment, and its register-check row reads "crew-internal names and invented jargon in the repo's text and commit messages (register drift, #392)".
  • OC-4 cites AGENTS.md by section (§2.3, §2.5), not by line, and states the release-prep exemption. — DONE @ #1562 (c2fad81, reviewed as c2fad81). OC-4: "runs on every PR to main regardless of author, except the rolling release-prep/ PR (#304), and again on push: main (AGENTS.md §2.3, §2.5)".
  • rt register-check passes on every changed doc, and go test ./... passes. — DONE @ #1562 (c2fad81, reviewed as c2fad81). Locally: rt register-check 0 hits on the nine docs (and on the added lines alone), scripts/anchor-check.py 0 unresolved, go test ./... in golang:1.25 all 30 packages ok on a tree byte-identical to 7861f71. On the forge: 18/18 PR checks green on c2fad81, including pr / register and go-ci / lint + build + test (pull_request).

Out of scope

  • AGENTS.md:187 says a botched bake "silently resolves the rc tag to main". Since #1222, a 'main' marker makes a tag-pinned run check out its own pin. docs/architecture/test-strategy.md §6c cites retired check-self-bootstrap.bats lines and AGENTS.md:133. ADR-0008 is a historical record and stays as written.
  • arc42's glossary rows for "re-pin", "rc tag" and "bootstrap-lag" still describe the rc re-pin as running every cycle.
  • Three more arc42 line cites are stale: AGENTS.md:304-311 (02-constraints.md:14, 08-crosscutting-concepts.md:97) now lands in §6.1, while the ASCII rule is §11 at line 409. AGENTS.md:269-273 (04-solution-strategy.md:47) lands in §5a, while Axis B is at line 374.
  • No test exercises rt repin's realBake call (mutants M1 and M4 above). This issue documents the gap and does not add a test.
#1512 left the arc42 "483d guard" framing out of scope. In nine places, arc42 says `check-self-bootstrap` guards the bake: it "blob-compares HEAD-vs-pinned" and so catches the "483d regression" (a botched bake that leaves an rc tag's marker at `'main'`, so a run pinned to that tag checks the toolkit out from `main`). This issue measures what actually guards the bake today, in each posture, and corrects those sites. ## Measured All reads are on live `origin/main` `6a36090`, 2026-10-06. **1. `check-self-bootstrap` cannot tell a botched bake from a correct one, in either posture.** - Under `@main` it returns before comparing any file (`cmd/rt/check_self_bootstrap.go:199`, the #456 floating-pin exit). - Under a tag pin it compares each guarded file after `gates.NormalizeBakeMarker` has replaced every baked value with a placeholder (`internal/gates/selfboot_check.go:125-141`). That is deliberate (#184): the value differs between HEAD and the pinned ref by design. It also means the value is never graded. - Probe on a throwaway clone of `6a36090`, every wrapper moved to the tag, then `rt check-self-bootstrap`: | Tag | What its four markers hold | `check-self-bootstrap` | `build-ref-check --ref <tag>` | |---|---|---|---| | `v9.9.8-rc.1`, baked with `rt build-bake --commit` | `'v9.9.8-rc.1'` | rc=0, "OK: all compose-scripts at HEAD match" | rc=0, PASS 4/4 | | `v9.9.9-rc.1`, tagged at main unbaked (the 483d shape) | `'main'` | **rc=0**, same OK line | **rc=1**, `marker holds "main", want "v9.9.9-rc.1"` for all 4 files | | `v9.9.7-rc.1`, marker comment removed from `reusable-release.yml` | `'main'` | rc=1, names `reusable-release.yml` | rc=1 | So the check catches a removed or moved marker (#184), not a wrong value. **2. `build-ref-check` is the gate that grades the baked value. It runs after the tag exists.** - `.forgejo/workflows/build-ref-check.yml:16-19` fires on `push: tags: ['v*']`, so an rc tag (`vX.Y.Z-rc.N`) triggers it too. Each run first asserts that `v1.0.0-alpha.0` is still refused (positive control). - On the forge it has run on each of the 11 cut tags from `v0.62.0` (2026-09-06) to `v0.67.0`, all reported success. Before that, #1361's runner label kept it from running. I read one log (run 19897, `v0.67.0`): `PASS v0.67.0 - all 4 marker-carrying canonical file(s) carry v0.67.0`. - **It has never graded an rc tag on the forge.** `git ls-remote --tags origin '*-rc*'`: the newest rc tag is still `v0.30.0-rc.2` (2026-07-07), two months before the first run. - Graded locally over all 128 `v*` tags: 83 pass, 40 could-not-grade (the reusables had other names then), 5 refused: - `v1.0.0-alpha.0` (2026-07-25, not on `main`'s history): every marker holds `'main'`. This is the 483d class on a published tag, and it is `build-ref-check`'s positive control. - `v0.57.1` to `v0.57.4`: `reusable-recover-pending-cut.yml` holds `'v0.57.0'`, a stale value rather than `main` (#1173; that file was missing from the bake list). - The 8 gradable rc tags (`v0.18.0-rc.1` to `v0.30.0-rc.2`) all pass. **3. The resolve step's #1222 fallback defuses a `'main'` marker at run time.** - In all four baked reusables, a caller pinned to anything other than `main` or a full SHA, whose fetched reusable holds an empty or `'main'` marker, checks out its own pin instead (`reusable-release.yml:344`, `reusable-recover-pending-cut.yml:217`, `reusable-prepared-uncut-check.yml:210`, `reusable-pr-gates.yml:341`). A 483d-shaped rc tag would therefore run its own scripts, not main's. - It does not cover a stale non-`main` value: that wins as baked (the `v0.57.x` case above). - Mutant B1 removed `|| "$REF" == "main"` from `reusable-release.yml:344`. It is killed by `tests/bootstrap-rt.bats` test 165, whose short-SHA case feeds every reusable a baked `'main'`. Baseline: 0 failures across `workflows.bats`, `pr-gates.bats` and `bootstrap-rt.bats`. **4. The bake's Go tests.** Four mutants, each run against `go test ./cmd/rt/ ./internal/selfboot/ ./internal/bake/` (baseline: all three ok): | Mutant | Result | |---|---| | M3: the bake kernel (`internal/bake/marker.go`, `rewriteMarker`) writes `'main'` whatever ref it is given | killed by 16 tests, e.g. `TestRewriteMarker_Canonical`, `TestBake_TreeCarriesRewrittenRef`, `TestBuildBakeRewriteInPlace` | | M2: `selfboot.CommitBake` bakes `'main'` instead of the requested ref | killed by 5 tests, e.g. `TestCommitBake_TreeCarriesRewrittenRef`, `TestRoundTrip_ThreeActorBootstrap` | | M1: `rt repin`'s own call (`cmd/rt/repin.go`, `realBake`) passes `'main'` instead of the rc tag | **survives**. No test exercises `realBake`; the repin tests inject `stubBake` | | M4: the same call passes a stale `'v0.57.0'` | **survives**, for the same reason | So the kernel and the detached commit are pinned, but `rt repin`'s wiring into them is not. A re-pin that passed the wrong ref would be caught only by `build-ref-check` once the tag is pushed. **5. Two citations are wrong.** - `11-risks-technical-debt.md:14` credits the single-ref check to `register-check`. `git grep 'AlignRefs('`: the only caller is `cmd/rt/check_self_bootstrap.go:169`. `rt register-check` is the vocabulary gate (#392, `cmd/rt/register_check.go:41-43`). `05-building-block-view.md:134` makes the same attribution. - `02-constraints.md:24` (OC-4) cites `AGENTS.md:131`. Before #1511 that line was §2.5's step 2; today it is a §2 build-bake sentence. The claim it supports is in AGENTS.md §2.3 (where the check runs) and §2.5 (it runs regardless of who opened the PR). It runs as gate g10 of `toolkit-self-gates.yml` on every PR to main, and the rolling `release-prep/` PR is exempt (#304). **Sites that credit the bake to `check-self-bootstrap`** (the six #1512 listed, plus three a sweep found): | # | Where | Claim | |---|---|---| | 1 | `01-introduction-goals.md:46` | "a botched bake is caught by a gate (the 483d regression), not shipped" | | 2 | `04-solution-strategy.md:46` | `check-self-bootstrap` blob-compares and fails loud (the 483d guard) | | 3 | `05-building-block-view.md:218` | the detached-commit machinery and "the 483d regression it guards" | | 4 | `07-deployment-view.md:92-94` | the gate blob-compares and fails loud on drift (the 483d regression) | | 5 | `08-crosscutting-concepts.md:21-24` | "The 483d guard", "on every PR regardless of author" | | 6 | `10-quality-requirements.md:43` (Q7) | the blob compare fails loud on a botched bake "before it ships" | | 7 | `10-quality-requirements.md:44` (Q8) | the check goes red after a compose-script PR merges. Under `@main` it does not (§2.1); #1512 corrected 7.3 and 11.1 but not this row | | 8 | `11-risks-technical-debt.md:12` | blob-compare guards it "every PR, any author" | | 9 | `12-glossary.md:28` | "guarded by `check-self-bootstrap`'s blob-compare" | ## Why it matters arc42 is where a reader learns which gate holds which property. It names a gate that does not grade the baked value, and it leaves out the two mechanisms that do. A reader who trusts it could weaken `build-ref-check` or the #1222 fallback, believing `check-self-bootstrap` has the case covered. The "before it ships" wording also overstates things. `build-ref-check` detects a bad tag after it is pushed; nothing refuses one beforehand. Under a deliberate tag pin, the rc path has never run with `build-ref-check` in place. ## Acceptance criteria - [x] Each of the nine sites above says what guards the bake in each posture, as AGENTS.md §2.2 frames them: under `@main`, `rt prep` bakes cut tags and `build-ref-check` grades them on push; under a deliberate tag pin (dormant), `rt repin` bakes an rc tag, `build-ref-check` would grade it on push but never has, and the #1222 fallback defuses a `'main'` marker. None of them credits `check-self-bootstrap` with grading the baked value. — DONE @ #1562 (`c2fad81`, reviewed as `c2fad81`). All nine were rewritten in `7861f71`. §8.1 carries the full posture split (under `@main`, under a deliberate tag pin, at run time, and the Go tests in both postures). The two quality-goal rows (§1.3, §4.3) name `build-ref-check` and the #1222 fallback and point to §8.1 rather than repeating the split. `git grep -n -i '483d|blob-compare' origin/main -- docs/architecture/arc42/` at `c2fad81`: no line credits `check-self-bootstrap` with grading the baked value, and "blob-compare" no longer appears. - [x] §8.1 states what `check-self-bootstrap` does guard (wrapper alignment, then pin drift under a tag pin, including a removed or moved marker) and why it cannot grade the value (`NormalizeBakeMarker`). — DONE @ #1562 (`c2fad81`, reviewed as `c2fad81`). New bullet "What `check-self-bootstrap` guards": wrapper alignment (`gates.AlignRefs`), the `@main` early return, pin drift under a tag pin including a removed or moved marker (#184), and `gates.NormalizeBakeMarker` as the reason it cannot tell a correct bake from a botched one. - [x] Q7 says the bad tag is detected after it is pushed, not before it ships, and names where that is verified. — DONE @ #1562 (`c2fad81`, reviewed as `c2fad81`). Q7 now reads "`build-ref-check` fails loud on the tag push ... That is after the tag exists, not before it ships", verified by `cmd/rt/build_ref_check_test.go`, the workflow's `v1.0.0-alpha.0` positive control, and the #1222 fallback in `tests/bootstrap-rt.bats` and `tests/workflows.bats`. Q8 was corrected too (the post-merge red is tag-pin only). - [x] `11-risks-technical-debt.md:14` and `05-building-block-view.md:134` attribute the single-ref check to `rt check-self-bootstrap` (`gates.AlignRefs`), and `05`'s `register-check` row says what that gate checks. — DONE @ #1562 (`c2fad81`, reviewed as `c2fad81`). §11.1's row is now "`check-self-bootstrap` single-ref assumption" and names `gates.AlignRefs` as having that one caller. §5's `check-self-bootstrap` row lists wrapper alignment, and its `register-check` row reads "crew-internal names and invented jargon in the repo's text and commit messages (register drift, #392)". - [x] OC-4 cites AGENTS.md by section (§2.3, §2.5), not by line, and states the release-prep exemption. — DONE @ #1562 (`c2fad81`, reviewed as `c2fad81`). OC-4: "runs on every PR to `main` regardless of author, except the rolling `release-prep/` PR (#304), and again on `push: main` (`AGENTS.md` §2.3, §2.5)". - [x] `rt register-check` passes on every changed doc, and `go test ./...` passes. — DONE @ #1562 (`c2fad81`, reviewed as `c2fad81`). Locally: `rt register-check` 0 hits on the nine docs (and on the added lines alone), `scripts/anchor-check.py` 0 unresolved, `go test ./...` in `golang:1.25` all 30 packages ok on a tree byte-identical to `7861f71`. On the forge: 18/18 PR checks green on `c2fad81`, including `pr / register` and `go-ci / lint + build + test (pull_request)`. ## Out of scope - `AGENTS.md:187` says a botched bake "silently resolves the rc tag to main". Since #1222, a `'main'` marker makes a tag-pinned run check out its own pin. `docs/architecture/test-strategy.md` §6c cites retired `check-self-bootstrap.bats` lines and `AGENTS.md:133`. ADR-0008 is a historical record and stays as written. - arc42's glossary rows for "re-pin", "rc tag" and "bootstrap-lag" still describe the rc re-pin as running every cycle. - Three more arc42 line cites are stale: `AGENTS.md:304-311` (`02-constraints.md:14`, `08-crosscutting-concepts.md:97`) now lands in §6.1, while the ASCII rule is §11 at line 409. `AGENTS.md:269-273` (`04-solution-strategy.md:47`) lands in §5a, while Axis B is at line 374. - No test exercises `rt repin`'s `realBake` call (mutants M1 and M4 above). This issue documents the gap and does not add a test.
Author
Member

The out-of-scope item on rt repin's realBake (no test runs it; mutants M1 and M4 survive) is now its own issue: #1563.

The out-of-scope item on `rt repin`'s `realBake` (no test runs it; mutants M1 and M4 survive) is now its own issue: #1563.
Author
Member

Landed on main as 7861f71 and c2fad81 (PR #1562), merged by alex at 12:06 with the reviewed SHAs unchanged: git range-diff 6a36090..c2fad81 6a36090..origin/main shows both commits as =.

  • Approval: alex, review 7279 at c2fad81. The reviewer session's verdict is review 7278, which replaces 7277.
  • Checks: 18/18 PR checks green on c2fad81. On push: main, at the time of writing, 9 are green, including go-ci / lint + build + test, go-ci / record reviewed vs landed commit and check-self-bootstrap / check. tests / bats, tests / checks, go-ci / page landing-tree failure and release / fire-cut are still pending.
  • ACs: all six ticked above with their evidence.
  • Follow-up: the out-of-scope realBake gap is #1563.

Closing by hand, since the PR used Refs.

Landed on `main` as `7861f71` and `c2fad81` (PR #1562), merged by alex at 12:06 with the reviewed SHAs unchanged: `git range-diff 6a36090..c2fad81 6a36090..origin/main` shows both commits as `=`. - **Approval:** alex, review 7279 at `c2fad81`. The reviewer session's verdict is review 7278, which replaces 7277. - **Checks:** 18/18 PR checks green on `c2fad81`. On `push: main`, at the time of writing, 9 are green, including `go-ci / lint + build + test`, `go-ci / record reviewed vs landed commit` and `check-self-bootstrap / check`. `tests / bats`, `tests / checks`, `go-ci / page landing-tree failure` and `release / fire-cut` are still pending. - **ACs:** all six ticked above with their evidence. - **Follow-up:** the out-of-scope `realBake` gap is #1563. Closing by hand, since the PR used `Refs`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
frankenbit/release-toolkit#1561
No description provided.