---
name: PR Hygiene
slug: pr-hygiene
category: Quality
description: "Turn current work into a pull request that is easy to review: tight scope, clean diff, clear description, and honest test notes. Use when opening a PR or cleaning a branch before review."
github: "https://github.com/iCodeCraft/anti-slop/tree/main/skills/pr-hygiene"
language: Shell
stars: 25
forks: 2
install: "npx degit https://github.com/iCodeCraft/anti-slop/tree/main/skills/pr-hygiene ~/.claude/skills/pr-hygiene"
installs_to: ~/.claude/skills/pr-hygiene
source_path: skills/pr-hygiene/SKILL.md
collection_size: 3
category_size: 1354
collection_url: "https://dirskills.com/collections/iCodeCraft/anti-slop"
added: 2026-08-11T07:22:00.912Z
last_synced: 2026-08-11T07:22:00.912Z
canonical_url: "https://dirskills.com/skills/pr-hygiene"
---

# PR Hygiene

Turn current work into a pull request that is easy to review: tight scope, clean diff, clear description, and honest test notes. Use when opening a PR or cleaning a branch before review.

**Install:**

```bash
npx degit https://github.com/iCodeCraft/anti-slop/tree/main/skills/pr-hygiene ~/.claude/skills/pr-hygiene
```

## README

# PR Hygiene

Turn the current work into a PR a human can review in one pass.

## Before opening

- [ ] Branch contains **one** logical change (or clearly labeled stacked commits)
- [ ] No leftover `console.log`, `debugger`, `TODO: temp`, commented-out blocks you added
- [ ] No unrelated formatting-only churn
- [ ] Secrets, `.env`, and local-only files are not staged
- [ ] Diff matches the stated goal — nothing "extra helpful"

## Description template

Use this structure (adapt section names to the host: GitHub/GitLab):

```markdown
## Summary
<1–3 bullets: what and why>

## Test plan
- [ ] <how you verified>
- [ ] <edge case worth checking>

## Notes
<risks, follow-ups, screenshots if UI>
```

## Commit / PR title

- Imperative, specific: `fix checkout: reject expired discount codes`
- Not: `update stuff`, `fix`, `WIP`, `address comments`

## Reviewer empathy

Call out:

- Files that look scary but are mechanical (renames, generated)
- Behavior that changed for callers/API consumers
- Anything you are unsure about

## Anti-patterns

- NEVER mix refactor + feature + dependency bump in one PR unless required
- NEVER force-push shared branches without warning
- NEVER open a PR with "tests TBD" and no plan
- NEVER bury breaking changes in the middle of the description

## If asked to open the PR

1. Summarize the diff in your own words first
2. Draft title + body with the template
3. List residual risks in one short section
