Skip to content

docs: transcribe eleven CHANGELOG entries that never left their PR bodies - #789

Merged
gsdali merged 2 commits into
refactor/381-pass1bfrom
docs/transcribe-untranscribed-changelog
Aug 8, 2026
Merged

docs: transcribe eleven CHANGELOG entries that never left their PR bodies#789
gsdali merged 2 commits into
refactor/381-pass1bfrom
docs/transcribe-untranscribed-changelog

Conversation

@gsdali

@gsdali gsdali commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

Release prep, step 4 of #786.

What happened

Scripts/check-changelog-transcription.py reports 31 merges in this branch whose merge commit
did not touch docs/CHANGELOG.md. Ten of them had a ## CHANGELOG entry sitting in the PR body
that I never copied across when I merged them.

That is the exact omission okf/policies/changelog-on-merge.md exists to prevent, committed by the
person who wrote the policy and the script that caught it. The script did its job; I did not read
its output until the release plan told me to.

#757 is a separate failure: it merged with no ## CHANGELOG entry section at all. Patch 0025
changes what ErrorOnSurface() reports on a real call path, so it needs one, written here.

What is transcribed

Eleven entries, newest first, covering #762, #532/0020, #771, #772, #763 twice, #747, #735, #761,
#512 and #597.

What cannot be fixed

Late transcription does not clear the audit. The check asks whether the merge commit changed the
file. That is the right question at merge time and unanswerable afterwards without rewriting
history, so the report stays at 31.

A note at the top of the Unreleased section records this: which flagged merges are entry-less by
design and why, that the rest predate the policy, and that the number is expected. Filed the
underlying limitation as #788 rather than widening the script inside a release-prep PR.

Two corrections I made to my own work before committing

The note first said "six merges" and described the audit as clearable. Both wrong. The count is 31,
not the 17 I first reported, because I read a truncated tail -20 as the whole list. And the audit
keys on the merge commit, so nothing I do now clears it.

That is the second time in two days a tail-truncated command has produced a confident wrong
number from me, after the isMaterialRadiallyInward false alarm on PR #778.

CHANGELOG entry

Self-referential, so stated rather than duplicated: this PR IS the transcription. It adds no new
behaviour and needs no entry of its own.

SemVer impact

NONE.

…heir PR bodies

`Scripts/check-changelog-transcription.py` reports 31 merges in this branch whose merge commit did
not touch `docs/CHANGELOG.md`. Ten of those had a `## CHANGELOG entry` in the PR body that I failed
to copy across when I merged them, which is the exact omission the policy and the script exist to
catch, committed by the person who wrote both. #757 merged with no such section at all and gets an
entry written now, since patch `0025` changes what `ErrorOnSurface()` reports.

Late transcription does not clear the audit and cannot: the check asks whether the merge commit
changed the file, which is the right question at merge time and unanswerable afterwards. Expect it
to keep reporting 31, and a note at the top of the Unreleased section says why, which of the flagged
merges are entry-less by design, and that the rest predate the policy.

The note originally said "six merges" and described the audit as clearable. Both were wrong: the
count is 31 because I read a truncated `tail -20` as the whole list, and the audit keys on the merge
commit. Corrected before committing.

Filed the underlying limitation separately rather than widening the script here.

@secondmouseAU-bot secondmouseAU-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated high-effort code review (2 findings).

Comment thread docs/CHANGELOG.md

## Unreleased

<!--

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cleanup (confirmed): okf/policies/changelog-on-merge.md states: "A pull request must not modify the ## Unreleased section of docs/CHANGELOG.md. It carries its entry in the PR body instead... Do not touch docs/CHANGELOG.md. If your diff contains it, that is a review finding." The only stated exceptions are the release commit (rewrites the whole section) and "a PR that fixes the CHANGELOG itself, for instance a stale cross-reference" — which is not adding an entry. This PR's diff inserts ~190 lines of eleven brand-new entries directly into ## Unreleased starting here, which is adding entries, not a small self-correcting fix like the cited example. I recognize the PR body frames this as a deliberate release-prep catch-up (transcribing entries that were dropped at merge time), which is a reasonable rationale — but per the letter of the policy this is still a review finding, and if any other in-flight PR also touches ## Unreleased around when this merges (the policy notes the branch "routinely has six or more" PRs open), this large insertion recreates exactly the merge-conflict cost the policy exists to avoid. Worth confirming intentionally whether this counts as an accepted exception, or whether the eleven entries should land some other way (e.g. via the release commit itself).

Comment thread docs/CHANGELOG.md Outdated
### `ShapeAnalysisResult.selfIntersectionCount` removed; `ShapeAxis.extent` now computed for `revolutionAxes()`/`symmetryAxes()` (#763)

`ShapeAnalysisResult.selfIntersectionCount` is removed. It was always `0`, never computed (the
bridge's own comment admitted "would require more expensive computation") — use

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cleanup (confirmed): okf/policies/writing-style.md states: "No em-dashes. The em-dash (—), and -- used as a sentence dash, are banned in every code comment, doc comment, markdown doc, changelog, commit message, and PR body across the ecosystem... This is a total ban going forward." That policy is explicitly cross-referenced from changelog-on-merge.md's own "Related" section, so it governs CHANGELOG.md entries specifically. This PR's newly added prose nonetheless contains five em dashes: here at line 144, and at lines 158, 168, 174, and 178. Since this is a total ban with no exception for already-drafted prose being transcribed from old PR bodies, these are new, uncorrected policy violations landing in the shipped CHANGELOG — worth a pass to replace them (with commas, periods, or parentheses) before merge.

Two review findings on PR #789.

**The em-dashes are a straight violation.** `okf/policies/writing-style.md` is a total ban and
`changelog-on-merge.md` cross-references it, so it governs CHANGELOG prose specifically. Five landed
in text transcribed verbatim from older PR bodies, which is not an exemption: the ban applies to
what ships, not to what it was copied from. Replaced with commas and full stops.

**The policy question is a gap in the policy, not a case to argue.** The reviewer is right that the
letter of `changelog-on-merge.md` forbids a PR touching `## Unreleased`, and right to ask rather than
wave it through. But the rule exists because every feature PR appends to the same list and they all
conflict, and it says in its own second sentence that the merger copies the block across. A PR whose
only purpose is that copying is the merger's job batched, not a violation.

Rather than claim an exception here, the policy now names the case, with two conditions that stop it
becoming a loophole: the PR must transcribe and nothing else, and it must be the only open PR
touching the file. Both hold here, verified.

That is the same instinct as `feedback-dont-restate-policy-in-prompts`: when the rule and the
practice disagree, fix the rule where it lives instead of arguing the instance.
@gsdali
gsdali merged commit 28eb262 into refactor/381-pass1b Aug 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants