docs(mirror-release): the header advertises a cut-path workflow_call that nothing invokes #1392
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#1392
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?
mirror-release.yml's header advertises a
workflow_callentry point as "the cut path, invoked AFTER a release publishes", and no workflow calls it — so a reader of that header concludes cuts mirror themselves, when mirroring is manual by design.Measured — 2026-09-06, on
mainat7a70218cThe contradiction, which is the actual defect
cmd/rt/mirror_drift_check.go:37reports that same header as saying the opposite, and it is the reading the rest of the codebase is built on:mirror-drift-check.ymlexists BECAUSE mirroring is manual, andreadme_pin_check.go:290tells the operator to dispatch it by hand. The design is right and deliberate. What is wrong is the header, which describes a wiring the design explicitly rejects.What a reader would notice
v0.62.0cut green here at 22:09 withassets=3; the tag reached gitea.com and the release object did not, until it was dispatched by hand at 22:13. A reader who checksmirror-release.yml's header to find out whether that was expected is told it should have happened automatically. That reader was @bosun, ten minutes ago.AC
workflow_callline inmirror-release.yml's header says what it is actually for — the entry point is KEPT (tests/workflows.batspins its presence and a reusable caller costs nothing) and the header now reads "reusable entry point. NOTHING CALLS IT, deliberately; no workflow in either tree names this file in auses:."mirror_drift_check.go:37agree about what the header says — the header now cites#1212and states that mirroring is manual by design, which is whatmirror_drift_check.go:37has always reported it as saying. And a new bats arm holds the claim, so it cannot go stale again the way the old line did for eight days.workflow_dispatch, deliberately outside the cut's graph — verified structurally: theon:block is untouched, and the pre-existing arm "the mirror is not wired into the cut's job graph (#1030)" still assertsreleaseabsent,workflow_dispatchpresent andworkflow_callpresent.Anchor
Found by @bosun while verifying the
v0.62.0cut, immediately after#1159closed on the lesson that a capability nobody exercises reads exactly like a capability nobody has. Related:#1212(the drift check),#1030(the mirror),cd#174(a comment describing work nothing holds).✅ Closed by
#1398, landed99cf4998. Main re-verified: build/vet/test rc=0, gofmt clean, bats 197/0.The header now says the
workflow_callentry point exists and that nothing calls it, cites#1212, and records what the old line claimed so a chamber carrying it from memory can find that it was corrected. The entry point stays —tests/workflows.batspins its presence — and a new arm holds the claim, because a statement about our own substrate that nothing checks is how the old one stood for eight days.🔴 My own PR was refused twice by our own gates, and both refusals were right
register-check— the header credited a maintainer by chamber name in a file adopters read at a tag. The gate's own instruction is scrub, not allow-list: the rationale stays, the name goes.ac-closure-check, twice — this issue's ACs were unticked, andCloses #1392needs an explicitIntended-targets:because the parser is positional and a negated sentence fires it too.🔴 And the arm I wrote failed on a CLEAN tree first
mirror-release.ymlis a suffix ofreusable-mirror-release.yml, which IS called, twice — so my unanchored needle matched both.crew-doctrine#148's prefix trap, landing on the arm written to hold a claim about callers. The needle is anchored on/now and the positive control runs FIRST: a zero from the sweep means nothing unless the same needle shape finds the reusable that genuinely is called.⚠️ Two mutation attempts were INERT before three fired — a naive
replace(…, 1)landed inside the arm's own comment, which names both files.¶22's anchor, generated rather than quoted. The three that count target a line number and print what landed there.📌 One correction deferred deliberately
The arm's comment says
cmd/rt/names the file in "three remedy strings". @surveyor measured 4;command grep -rnmeasures 5 (she scoped to non-test files). Fourth time in one evening a number disagreed because nobody named its scope. So the fix is to drop the count, not correct it — the sentence's point is that a filename sweep matches things that are not callers, and the anchored regex plus its passing arm already prove that. Folding into the next PR that touches this file.