no-force-push-a-reviewed-prlisted
Install: claude install-skill serhiy-bzhezytskyy/contrib-receipts
# No force-push on a reviewed PR
## Purpose
Once a reviewer has read your PR, GitHub anchors their inline comments to specific
commits and diff positions. A force-push (or an amend followed by a force-push)
rewrites those commits, so GitHub can no longer tell what changed since their last
look — comments go "outdated", the diff resets, and the reviewer has to re-read the
whole thing cold. That cold re-read is exactly the cost incremental commits exist
to prevent. On a shared PR, force-push is not a style choice: it breaks other
people's review-in-progress.
Squashing/cleanup, if the house wants it, happens at merge time by the committer —
not mid-review by you.
## When to use
- Any push to a PR that has at least one reviewer or review comment.
- Any urge to `--amend` "just to fix the commit message" on a shared branch.
- Any rebase that would rewrite already-reviewed commits.
## When NOT to use
No reviewer or review comment is on the branch yet (or it's your own solo repo) — before anyone has looked, a rebase/amend anchors nothing and is fine.
## The practice (checklist)
- [ ] Default to a **new `git commit`** for every follow-up change, so each reviewer
sees exactly the delta since their last look.
- [ ] **No `git commit --amend`** on a shared branch — even to fix a stale message.
- [ ] **No `git push --force` / `--force-with-lease`** on a shared branch.
- [ ] Leave squashing/history cleanup to the committer **at merge time**.
- [ ] If you already force-pushed,