Repository navigation
pr-review gains two new dogfood-driven gates and CONTRIBUTING.md codifies the matching rule: (1) Step 1 DoR rejects AI co-author trailers in commit messages (Co-Authored-By: Claude / 🤖 Generated with Claude Code etc.) — authorship semantics stay human; (2) Step 5 rejects CHANGELOG bullets that land in a published [X.Y.Z] dated section — closes the GitHub mergeStateStatus: CLEAN blind-spot where 3-way merge applies the textual diff into the post-Cut "wrong" section. Both rules were surfaced by this very release cycle and the regression they caught (PR #16 → PR #17 dogfood) is the canonical evidence. Patch release — ### Changed only, no Breaking.
Changed
skills/pr-review/SKILL.mdStep 5 — new sub-gate: CHANGELOG diff must land in[Unreleased], never an existing dated[X.Y.Z]section (#18) — adds a checkbox under Step 5 instructing the reviewer to inspect every new bullet's## [...]heading parent in the diff and return🔁 REQUEST_CHANGESif any bullet lands inside a published dated section. Documents the typical cause (PR base predates arelease-sopCut PR merge → GitHub 3-way merge applies the textual diff to the now-"wrong" section), themergeStateStatus: CLEANblind-spot (only checks textual conflict, not semantic placement), the two legitimate exceptions (therelease-sopCut PR itself; thehotfix-flowpatch-tag-branch PR landing in its newly-created[X.Y.(Z+1)]section), and two recovery recipes (gh pr checkout && git rebase mainbefore merge, or a follow-updocs(changelog)move-PR after merge — cf. this repo's PR #17 dogfood precedent). Closes the gap surfaced by the PR #16 → PR #17 dogfood: previously Step 5 only checked section type (Added/Changed/Fixed/ …) but not section placement ([Unreleased]vs dated).skills/pr-review/SKILL.mdStep 1 DoR — new gate forbidding AI co-author trailers in commit messages (#16) — Step 1 now rejects PRs whose commits containCo-Authored-By: Claude/Co-authored-by: Claude Code <noreply@anthropic.com>/🤖 Generated with Claude Codelines. Author attribution semantics must stay human (git log/git blameshouldn't carry an AInoreply@anthropic.comemail). AI assistance for drafting / refactoring / debugging is fine — only the attribution trailer is rejected. Includes agit log --grep='Co-[Aa]uthored-[Bb]y:.*Claude'detection one-liner and a pointer torelease-sop故障预案 for the cleanup recipe (filter-branch / interactive rebase + force-push, with the temporaryallow_force_pushesopening on protected branches).CONTRIBUTING.mdPull-requests section — same rule — adds a "Commit message hygiene" bullet forbidding AI co-author trailers in commits and PR bodies, with agit commit --amendrecovery hint and aprepare-commit-msghook suggestion for tooling that auto-appends trailers. Tracks thepr-reviewStep 1 gate.