feat: structural backstop for self-bootstrap re-pin trigger (mechanism-of-touch CI check) #124
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#124
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Per Surveyor 116b (PR #123 review): the self-bootstrap re-pin pattern (AGENTS.md §2 mechanism-of-touch criterion) has the right discipline in principle, but at-action-time engagement has slipped twice in a row:
@v0.8.0-rc.1— pre-fix code). Re-pinned in #123 after the fact.The pattern surfacing twice with the same root cause (compose-script-fix on main + not in pinned ref) means the discipline is sound but the engagement-at-action-time is the missing piece. Surveyor's framing: "A manual step missed twice is a candidate for a structural backstop."
Proposed: mechanism-of-touch CI check
A check workflow that fails red when the consumer's
release.ymlpinned@toolkit_refis behind a compose-script change onmainthat hasn't been incorporated into a*-rc.Ntag yet. Specifically:mainthat touches_release.yml/release-decide.sh/release-prep.sh/draft-release.sh/fragments.sh/changelog.sh/forgejo-api.sh/manifest-check.sh:main:_release.yml's pinned@v<X.Y.Z>-rc.Nref's compose-scripts differ from main's HEAD compose-scripts (i.e., main has substrate-changes the pinned ref doesn't include)*-rc.Ntag at main's HEAD that includes the substrate-changes, ANDrelease.ymlre-pinned to that fresh refAlternative considered
Auto-re-pin trigger (workflow that opens a re-pin PR automatically when compose-scripts merge to main): more machinery, more failure modes, harder to reason about timing relative to the cut sequence. The check-and-fail approach is simpler — surfaces the problem, lets operator engage.
Implementation surface
.forgejo/workflows/check-self-bootstrap-rc-tag.ymlworkflowscripts/check-self-bootstrap.shdoing the comparison (also bats-testable directly)release-toolkit.yml(default to the existing list)What this would have prevented
Worth banking calibration
Surveyor's framing in 116b: "discipline-EXISTING ≠ discipline-ENGAGING at action-time". When a sound discipline keeps slipping at engagement, the structural backstop converts it from a manual remember-to-do into an automated check-or-fail.
Worth banking this as a META-pattern across the toolkit's discipline-pin framework: every discipline that catches X bugs in N action-times has a candidate structural backstop. Most don't need automation; the ones that slip multiple times do.
Refs
quartermaster referenced this issue2026-06-27 14:43:40 +02:00
push_whitelist_usernamesmembership for direct-push manifest path #260quartermaster referenced this issue2026-07-06 11:29:19 +02:00
rt check-self-bootstrap#758