diff-explainlisted
Install: claude install-skill Sagargupta16/claude-skills
# diff-explain
## Live context (when diffing a local branch)
- Current branch diff stat: !`git diff $(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main 2>/dev/null || echo HEAD)...HEAD --stat 2>/dev/null || echo "no local diff vs main"`
## When to activate
- User pastes a diff and asks "what does this do?" / "summarize" / "explain".
- User shares a PR link or branch name and wants a quick read before reviewing.
- Reviewing unfamiliar changes before merge.
Do NOT activate when the user is asking for a detailed line-by-line review -- that's a different task.
## Steps
1. **Get the diff.**
- PR link: `gh pr diff <url-or-number>`
- Local branch: `git diff <base>...HEAD` (default base: `main` or `master`)
- Pasted: use what the user pasted.
2. **Read it fully.** Don't skim the first 50 lines and guess.
3. **Group by concern.** Even if the diff touches many files, most diffs have 1-3 concerns (a bug fix, a rename, a new feature). Name each concern in plain language.
4. **Write ONE paragraph.** 3-5 sentences covering:
- What changed (the concern, not the files).
- Why it likely changed (if the commit message / PR title / linked issue says).
- What risk it introduces (behavior change, API change, DB migration, dependency bump).
5. **Optional risk line.** If one specific thing deserves attention before merge, append one line starting with `Watch out for:`.
## Rules
- No file-by-file walk. Group by concern, not by path.
- No bullet lists.