feat(reusable-release): migrate 7 callsites from bash scripts to rt <subcommand> #582
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#582
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?
Migrate
reusable-release.yml's 7 (per empirical count; milestone description says "6" — resolve at framing-verify) script callsites from.release-toolkit/scripts/*.shtort <subcommand>invocations. The load-bearing Phase 7 gate: the primary way Phase 6 + 6b ports actually take effect in production.Scope
The 7 callsites to migrate (empirical enumeration from reusable-release.yml grep):
release-decide.sh(with| tee -a $GITHUB_OUTPUT)rt decidecompose-verify.shrt compose-verifypreflight-push-whitelist.sh(with$PUSH_MODEarg)rt preflight-push-whitelistdraft-release.shrt releasemanifest-precheck.sh(captured viaPRECHECK_DECISION=$(...))rt manifest-precheckprune-rc-tags.sh(with|| ...continue-on-fail)rt prune-rc-tagsrelease-prep.shrt prepStructural preservation requirements:
PRECHECK_DECISION=$(...))\|\| ...)$GITHUB_OUTPUTwrites (e.g. line 266| tee -a)Milestone-description discrepancy (Bosun-noted at file-time): milestone says "6 callsites" but empirical grep shows 7. Framing-verify to resolve — may be that milestone description is stale, or one callsite is expected to be inlined differently.
AC
rt <subcommand>Related
Filed 2026-07-27 by Bosun as part of Phase 7 decomposition.
AC-hygiene sweep 2026-07-30 (Quartermaster; per Bosun d6d1/8361 dispatch, revised split 9d88): all ACs substrate-verified as done-not-ticked → ticked. Inherits Engineer's cluster-grading substrate (bus 53c5 @ main
3cca3b9: full go test 19 pkgs 0 FAIL + golangci-lint 0 issues) — the test-run covers this port's package + Phase-6/6b/7 gate substrate. Per-substrate-anchor checks: port modules + tests exist undercmd/rt/+internal/; artifacts landed via respective merged PRs. Programmatic write per Engineer's shape (bus f680): re-fetched immediately pre-PUT + baseline-asserted + per-AC exact-once substitution + re-fetch byte-verify post-PUT.Closed via PR#597 merged @
a529c5020a(2026-07-29 14:15:10 CEST) — Phase 7 FINALE. 2c HYBRID bootstrap shipped (ref-discriminator: v-tags→fetch, main→build) + F-iii extract scripts/fetch-rt.sh (single source-of-truth for checksum-verify; +104 new, action.yml refactored -66) + ADR-0008 §4a build-exception NOTE folded same-PR + all 7 CORRECT callsites migrated (decide/compose-verify/preflight/release/manifest-precheck/prune-rc-tags/prep) + PR#596 2 nits co-landed + workflows.bats #774 stale-guard fixed with line-anchored assertion (mutation-verified non-vacuous, extends Surveyors bare-substring proposal to avoid new "invoking rt release" echo vacuity). §4a "airtight"→"convention-guarded" mid-review self-correction folded with Go preflight (guards command -v go, not repo-identity proxy) — Engineer surfaced overclaim, Surveyor independent-trace agreement. Surveyor deep-verified byte-preservation on fetch-rt.sh extraction + discriminator routing + preflight fold + #260 ordering invariant preserved (rt preflight@438 < rt release@461, verified at source not assumed) — reviews 4655 (initial) + 4656 (post-fix). Refs-only closure, hand-closed same pattern as #583/#587/#580/#591/#562/#585/#584. Protocol v2 empirical n=3: BACKSTOP ping fired at 300s; Engineer CLEAR (40d4) arrived ~3min post-send during ping — instance 2 of "CLEAR-in-flight when BACKSTOP fires" pattern per Engineer df85 tuning threshold (n≥2 → extend BACKSTOP). Data-supported for widening BACKSTOP to 450s in future merges. Substrate-of-record anchors filed this cycle: rename-migration-must-update-test-guards class, local-gate-scope-vs-CI-gate-scope class (Engineer bats-in-local-gate correction), line-anchored-vs-bare-substring fix-non-vacuity class,.state-vs-.statusForgejo check-run instrument note, cross-actor independent-trace agreement pattern, security-code-duplication anti-pattern, doc-vs-substrate-drift avoidance via same-transaction-commit.