docs: record that changelog entries are batched, and that the up-to-date rule is off (#185)

* docs: record that changelog entries are batched, and that the up-to-date rule is off

The automated reviewer on #182 requested a CHANGELOG.md edit on a fix
PR because the batching convention lived only in the remediation plan.
The reviewer reads CLAUDE.md from main on every run, so the rule goes
here. Also records the branch-protection change from 2026-09-02.

Closes #177

* docs: drop the remediation reference from the branch-protection note

---------

Co-authored-by: goodolclint-claude[bot] <323206664+goodolclint-claude[bot]@users.noreply.github.com>
This commit is contained in:
goodolclint-claude[bot]
2026-09-02 16:58:48 -05:00
committed by GitHub
parent 18f5fe6841
commit 40f4eae9e2
+10
View File
@@ -20,6 +20,8 @@ Protection on `main`, as configured 2026-09-02:
- stale reviews dismissed on push — a new commit invalidates the existing approval, and the
automated review re-runs on `synchronize`
- **review from Code Owners required**
- "require branches to be up to date before merging" is **off** (operator, 2026-09-02). A merge to
`main` does not invalidate sibling PRs, so one sweep merges everything that is green.
`CODEOWNERS` is deliberately narrow. It names only the paths that govern review or publishing —
workflows, `.claude/`, `.mcp.json`, any `CLAUDE.md`/`AGENTS.md`, `DECISIONS.md`,
@@ -27,6 +29,14 @@ workflows, `.claude/`, `.mcp.json`, any `CLAUDE.md`/`AGENTS.md`, `DECISIONS.md`,
of those needs the operator's approval and cannot be merged on an automated one. Everything else
has no code owner, so the automated review still merges it.
**Changelog entries are batched, not per PR.** Because `CHANGELOG.md` is code-owned, a fix PR does
not edit it; that would put an otherwise automatable PR onto the operator's approval path for one
line. Instead the PR body carries the entry under a `## Changelog` heading (past tense,
user-facing, names the cmdlet, ends with the issue number), and one operator-approved PR per
batch lifts every merged entry into `[Unreleased]` (for example #168, #183). A reviewer should
read a missing `CHANGELOG.md` diff on a fix PR as this convention, not as a gap. Release PRs,
which cut `[Unreleased]` into a version, are operator PRs regardless.
Admin bypass is **available** to the operator, deliberately. GitHub does not let an author
approve their own pull request, so without it an operator-authored change to a governance path
would deadlock. It is not a hole in the threat model this protects against: App installations