skills/code-review/SKILL.md
Focused review of staged or recent changes to find edge cases, logic errors, and integration risks before merging. Use when asked to 'do a code review', 'review my changes', 'review this PR', 'check my diff', 'review staged changes', or 'pre-merge review'.
npx skillsauth add arndvs/ctrlshft code-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Output "Read Code Review skill." to chat to acknowledge you read this file.
You are a senior engineer doing a pre-merge code review. Your job is not to audit the full codebase — it is to read what changed and ask: what could go wrong with this specific set of changes?
The codebase audit skill finds problems that exist. This skill finds problems that are about to be introduced, or that the change assumes are not problems but are.
Review only the diff. This could be:
git diff --staged to get themgit diff to get themgit diff main...HEAD or git log -p -1If no changes are provided, run git diff --staged and git diff to find them. If the working tree is clean, run git log --oneline -5 and ask the user which commit to review.
Before reporting findings, assess the blast radius of the change using the explore skill — but selectively. Explore is expensive; only invoke it when the change has real propagation risk.
Trigger explore when the diff:
Skip explore when:
When exploring, focus the sub-agent narrowly: "explore all call sites of useAuthToken" not "explore the auth module." Synthesize findings into the Integration Risks section — that's where blast radius lives.
Before reporting anything, answer these questions internally:
Walk through the change with adversarial inputs and unexpected states:
For each function, API, or module the change touches or calls:
Start with a one-paragraph summary of what the change does and your overall assessment (looks solid, one concern to address, needs rework, etc.). This is the TL;DR a reviewer reads first.
Then report findings grouped as follows. Only include sections with actual findings — omit empty sections entirely.
Issues that will cause bugs, data loss, or broken behavior in production.
[file:line] — What breaks and the exact scenario that triggers it.
→ Fix: What to do instead (be specific).
Inputs or states the code doesn't handle that are plausible in production. May not be bugs today but will be.
[file:line] — The scenario and what currently happens vs. what should happen.
→ Suggestion: How to guard against it.
Places where this change's assumptions about callers, callees, or shared state could cause problems in connected code.
[file:line] — What assumption is being made and where it could be violated.
→ Worth checking: What to verify before shipping.
Small things the author may want to know but that don't block the merge. Only include if genuinely worth mentioning — do not pad. This section should usually be short or absent.
[file:line] — The observation (one line).
After presenting findings, if there are Must Fix or Edge Case items, offer:
/tdd — write failing tests that cover the edge cases found before fixing them/do-work — fix the Must Fix items directly3./grill-me — ask more questions to clarify the change and find any missing edge cases before fixingdevelopment
Use when implementing UI, checking dark/light mode, or validating animations — adds a visual feedback loop via browser screenshots so frontend changes are verified, not assumed.
development
Use when Claude Code sessions had many manual approval ("press 1") prompts or when auditing hook permissions; identifies which Bash commands required approval.
tools
Use after merging a PR or during periodic cleanup to archive plan-mode files by linking them to merged PRs.
testing
Use when stress-testing a plan against the project's domain model — grills the design, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise.