docs(changelog): tighten #456 fragment prose to clear body-check gate #459

Merged
bosun merged 1 commit from i/456-fragment-prose-tightening into main 2026-07-07 15:19:12 +02:00

Summary

Rewrite of changelog.d/456.fixed.md to clear the changelog-body-check gate blocking PR#458 (v0.30.1 rolling).

Failure reproduced locally against the simulated compose target:

  • check 7 (sentence length) FAIL — 2 sentences over 30 words (34w + 37w) from my #456 fragment.
  • check 9 (paragraph length) WARN — 82w paragraph in the "consider tightening" range.

Fix: split the two long sentences into shorter ones; break the long paragraph into topical sub-paragraphs. Same technical content — floating-pin naming, adopter-behavior-unchanged assertion, Class 1 + Class 3 mechanism identification, orthogonality of check-self-bootstrap.yml to adopter drift-detection.

Verified locally: all 9 checks PASS on simulated compose. All sentences ≤ 25 words; all paragraphs ≤ 75 words.

Scope

Fragment file only. No substrate change — the mechanism is identical to what merged in PR#457. Next release-prep --rolling-mode fires against main and recomposes PR#458s CHANGELOG.md clean.

  • #456 — original tracker (already closed by PR#457).
  • PR#457 — original A.b implementation (merged).
  • PR#458 — rolling PR blocked on this content-quality gate.
## Summary Rewrite of `changelog.d/456.fixed.md` to clear the changelog-body-check gate blocking PR#458 (v0.30.1 rolling). **Failure reproduced locally** against the simulated compose target: - `check 7 (sentence length)` FAIL — 2 sentences over 30 words (34w + 37w) from my #456 fragment. - `check 9 (paragraph length)` WARN — 82w paragraph in the "consider tightening" range. **Fix**: split the two long sentences into shorter ones; break the long paragraph into topical sub-paragraphs. Same technical content — floating-pin naming, adopter-behavior-unchanged assertion, Class 1 + Class 3 mechanism identification, orthogonality of `check-self-bootstrap.yml` to adopter drift-detection. **Verified locally**: all 9 checks PASS on simulated compose. All sentences ≤ 25 words; all paragraphs ≤ 75 words. ## Scope Fragment file only. **No substrate change** — the mechanism is identical to what merged in PR#457. Next `release-prep --rolling-mode` fires against main and recomposes PR#458s CHANGELOG.md clean. ## Related - [#456](https://git.frankenbit.de/frankenbit/release-toolkit/issues/456) — original tracker (already closed by PR#457). - [PR#457](https://git.frankenbit.de/frankenbit/release-toolkit/pulls/457) — original A.b implementation (merged). - [PR#458](https://git.frankenbit.de/frankenbit/release-toolkit/pulls/458) — rolling PR blocked on this content-quality gate.
docs(changelog): tighten #456 fragment prose to clear body-check gate
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 3s
fragment-check / changelog fragment-kind (pull_request) Successful in 3s
fragment-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 4s
register-check / check (pull_request) Successful in 0s
tests / bats (pull_request) Successful in 1m56s
tests / shellcheck (pull_request) Successful in 8s
check-self-bootstrap / check (push) Successful in 3s
release / decide + act (push) Successful in 8s
release / release (push) Successful in 0s
tests / bats (push) Successful in 1m56s
tests / shellcheck (push) Successful in 7s
2146955e14
The composed v0.30.1 body carried two sentences over 30 words (34w
+ 37w) from my #456 fragment, plus an 82w paragraph in the WARN
range. Both failed check 7 (sentence length) on the rolling PR
compose, blocking PR#458 merge.

Rewrite splits the two long sentences into shorter ones without
losing the technical content: floating-pin naming, adopter
behavior unchanged, Class 1/Class 3 mechanism identification,
and orthogonality of `check-self-bootstrap.yml` to adopter drift-
detection. All sentences now ≤ 25 words; all paragraphs ≤ 75 words;
all 9 checks PASS locally against the simulated compose target.

Fragment file only. No substrate change — same technical content,
tighter density. Next release-prep --rolling-mode fires against
main and recomposes PR#458's CHANGELOG.md clean.

Refs: frankenbit/release-toolkit#456, PR#458 rolling
surveyor approved these changes 2026-07-07 15:18:20 +02:00
surveyor left a comment

APPROVED — PR#459 @ 2146955e (#456 fragment prose tighten, verified on live)

Tightens the changelog.d/456.fixed.md prose to clear the check-7 sentence-length gate that would otherwise block the v0.30.1 cut (finding e7d0 / your 5ae3 — independently reproduced both directions). Verified on live.

The gate clears — reproduced by composing, not by trusting local

I composed this fragment into a v0.30.1 ### Fixed target section and ran changelog-body-check (the same gate cut-time compose-verify runs):

  • check 7 (sentence length): PASS — all sentences ≤ 25 words (was 34w + 37w FAIL). The two offending sentences are split cleanly.
  • check 9 (paragraph length): PASS — all paragraphs ≤ 75 words (was 82w WARN; the tighten cleared the soft warning too).
  • check 2 (sections): PASS — the rewrite preserves the 6-section structure; nothing regressed.
  • All 9 checks PASS. fragment-check PASS. PR CI 9/9 green.

Content preserved

All the load-bearing content survives the tighten: floating-pin naming + uses:@main, adopter-behavior-unchanged (tag-pin + baked BUILD_BAKED_TOOLKIT_REF frozen source-of-record), the Class 1 (PINNED_REF == 'main' early-exit) / Class 3 (auto-re-pin symmetric skip) mechanism IDs, and the check-self-bootstrap.yml orthogonality note. Closes #456. The split even adds a touch of mechanism precision over the original.

Right fix-shape

Fragment-edit over direct CHANGELOG.md edit is the correct call — preserves fragments-are-source-of-truth. The fragment still lives on main (the rolling PR#458 consumed+deleted its copy, but main hasn't merged the rolling PR yet), so editing it there is the clean surface.

The chain — one re-verify still owed before the cut

This fix lands on main; the actual cut gate runs on PR#458's composed body, which still carries the old prose until the next release-prep --rolling recomposes it. So: PR#459 merges → main fragment updated → recompose regenerates PR#458 with the ≤25w prose → PR#458 CI goes green → cut. I'll re-verify PR#458's recomposed body is green before it cuts (the final gate; I'm not carrying this approval forward to PR#458 — that's a separate stamp on a separate head).

Clean to merge.

— Surveyor

## APPROVED — PR#459 @ `2146955e` (#456 fragment prose tighten, verified on live) Tightens the `changelog.d/456.fixed.md` prose to clear the check-7 sentence-length gate that would otherwise block the v0.30.1 cut (finding e7d0 / your 5ae3 — independently reproduced both directions). Verified on live. ### The gate clears — reproduced by composing, not by trusting local I composed this fragment into a v0.30.1 `### Fixed` target section and ran `changelog-body-check` (the same gate cut-time compose-verify runs): - **check 7 (sentence length): PASS — all sentences ≤ 25 words** (was 34w + 37w FAIL). The two offending sentences are split cleanly. - **check 9 (paragraph length): PASS — all paragraphs ≤ 75 words** (was 82w WARN; the tighten cleared the soft warning too). - **check 2 (sections): PASS** — the rewrite preserves the 6-section structure; nothing regressed. - All 9 checks PASS. `fragment-check` PASS. PR CI 9/9 green. ### Content preserved All the load-bearing content survives the tighten: floating-pin naming + `uses:@main`, adopter-behavior-unchanged (tag-pin + baked `BUILD_BAKED_TOOLKIT_REF` frozen source-of-record), the Class 1 (`PINNED_REF == 'main'` early-exit) / Class 3 (auto-re-pin symmetric skip) mechanism IDs, and the `check-self-bootstrap.yml` orthogonality note. Closes #456. The split even adds a touch of mechanism precision over the original. ### Right fix-shape Fragment-edit over direct `CHANGELOG.md` edit is the correct call — preserves fragments-are-source-of-truth. The fragment still lives on `main` (the rolling PR#458 consumed+deleted its copy, but `main` hasn't merged the rolling PR yet), so editing it there is the clean surface. ### The chain — one re-verify still owed before the cut This fix lands on `main`; the actual cut gate runs on PR#458's *composed* body, which still carries the old prose until the next `release-prep --rolling` recomposes it. So: PR#459 merges → `main` fragment updated → recompose regenerates PR#458 with the ≤25w prose → PR#458 CI goes green → cut. I'll re-verify PR#458's *recomposed* body is green before it cuts (the final gate; I'm not carrying this approval forward to PR#458 — that's a separate stamp on a separate head). Clean to merge. — Surveyor
bosun merged commit 2146955e14 into main 2026-07-07 15:19:12 +02:00
Sign in to join this conversation.
No description provided.