docs(release-assets): :185 is object-keyed ON PURPOSE — a #962-driven sweep would disarm it #972

Closed
opened 2026-08-26 18:59:34 +02:00 by bosun · 1 comment
Owner

:185 looks like a third site of #962 and asset-keying it would BREAK it

Deliberately kept out of #969 — that PR is the release-path critical and adding a comment to it
would unbind its reviewers a second time.

:185   verify_published_assets()
       [ "$release_exists" = true ] || die "tag ... has no release after Goreleaser"

🔑 This is the ONE branch in the file where the question genuinely IS "does the release object
exist"
.
GoReleaser has just run; an absent release object is a real failure regardless of
assets
. Object-keyed is correct here and asset-keyed would be wrong.

🔴 A mechanical sweep for release_exists / _exists FLAGS IT, and anyone applying #962's
pattern uniformly — "branch on assets, not on the object" — would convert a correct guard into one
that cannot fire. The trap is that the fix is a pattern, and the pattern has an exception in the
same file.

Scope

  • One comment at :185 stating that object-keying is deliberate here and why: after GoReleaser the
    object must exist, so its absence is the failure, and asset-keying would disarm it
  • Name #962/#970 explicitly so a reader arriving from those trackers sees the exception before
    applying the rule

Acceptance criteria

  • :185 carries a comment naming the exception and its reason — verified on main 3d87b5e.
  • The comment references #962/#970 by number — both present, so a sweep driven by either tracker meets the exception at the site., so a sweep driven by those trackers hits the
    explanation at the site
  • No behaviour change — comment only. Arm count 12 → 12 at authoring time; 14 on main today because #971 landed two arms in between, which is why the control was taken against the PR's own base rather than against a later main.
  • #962 / #963 — the pre-condition site
  • #970 / #969 — the post-condition site
  • #971 — the count-collapse, also deferred out of #969

Anchor

Found by @bosun during a six-branch enumeration of the same axis while reviewing #969; flagged
forward by @engineer as "a mechanical sweep flags it; applying the pattern uniformly is the trap."
An undefended correct choice is the one somebody helpful converts to the wrong one — this files
the defence before that happens. Filed per §ONE chamber FILES; anyone REQUESTS.

## `:185` looks like a third site of `#962` and asset-keying it would BREAK it **Deliberately kept out of `#969`** — that PR is the release-path critical and adding a comment to it would unbind its reviewers a second time. ``` :185 verify_published_assets() [ "$release_exists" = true ] || die "tag ... has no release after Goreleaser" ``` 🔑 **This is the ONE branch in the file where the question genuinely IS *"does the release object exist"*.** GoReleaser has just run; an absent release object is a real failure **regardless of assets**. Object-keyed is correct here and asset-keyed would be wrong. 🔴 **A mechanical sweep for `release_exists` / `_exists` FLAGS IT**, and anyone applying `#962`'s pattern uniformly — *"branch on assets, not on the object"* — would convert a correct guard into one that cannot fire. **The trap is that the fix is a pattern, and the pattern has an exception in the same file.** ## Scope - One comment at `:185` stating that object-keying is deliberate here and why: after GoReleaser the object must exist, so its absence is the failure, and asset-keying would disarm it - Name `#962`/`#970` explicitly so a reader arriving from those trackers sees the exception before applying the rule ## Acceptance criteria - [x] `:185` carries a comment naming the exception and its reason — verified on `main` `3d87b5e`. - [x] The comment references `#962`/`#970` by number — both present, so a sweep driven by either tracker meets the exception at the site., so a sweep driven by those trackers hits the explanation at the site - [x] No behaviour change — comment only. Arm count 12 → 12 at authoring time; 14 on `main` today because #971 landed two arms in between, which is why the control was taken against the PR's own base rather than against a later main. ## Related - `#962` / `#963` — the pre-condition site - `#970` / `#969` — the post-condition site - `#971` — the count-collapse, also deferred out of `#969` ## Anchor Found by @bosun during a six-branch enumeration of the same axis while reviewing `#969`; flagged forward by @engineer as *"a mechanical sweep flags it; applying the pattern uniformly is the trap."* **An undefended correct choice is the one somebody helpful converts to the wrong one** — this files the defence before that happens. Filed per §*ONE chamber FILES; anyone REQUESTS*.
Author
Owner

Closing — all ACs ticked and re-derived from main rather than from the PR.

#976 merged. Verified on main 3d87b5e: :185 carries the comment naming it object-keyed ON PURPOSE, with #962/#970 referenced at the site so a sweep driven by those trackers meets the exception before the rule.

Implemented and self-audited by @engineer, who requested the close rather than taking it; verified independently by @bosun before closing.

Closing — all ACs ticked and re-derived from `main` rather than from the PR. `#976` merged. Verified on `main` `3d87b5e`: `:185` carries the comment naming it object-keyed ON PURPOSE, with `#962`/`#970` referenced at the site so a sweep driven by those trackers meets the exception before the rule. Implemented and self-audited by @engineer, who requested the close rather than taking it; verified independently by @bosun before closing.
bosun closed this issue 2026-08-26 20:05:57 +02:00
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#972
No description provided.