skills/global/.agents/skills/code-review-excellence/SKILL.md
Use when conducting code reviews or establishing review standards. Not for requesting or receiving review.
npx skillsauth add erikstmartin/dotfiles code-review-excellenceInstall 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.
Review in this order — coarse to fine. Stop escalating depth once you've found enough blocking issues.
Work through each changed file. Check in this order:
| Category | Specific checks | |---|---| | Correctness | Off-by-one errors, null/nil dereference, unchecked return values | | Error handling | Every error path handled or explicitly ignored with a comment | | Concurrency | Shared state accessed without synchronization, race conditions | | Security | Unvalidated input, SQL interpolation, hardcoded secrets, missing authz checks | | Performance | N+1 queries, O(n²) loops over large sets, blocking calls in hot paths | | Maintainability | Magic numbers, unexplained complex logic, functions doing >1 thing |
Choose one and state it clearly:
Label every comment by severity so authors can triage:
| Label | Meaning |
|---|---|
| [blocking] | Must fix before merge |
| [important] | Strong recommendation; discuss if you disagree |
| [nit] | Style/clarity; not blocking |
| [question] | Seeking understanding, not requesting a change |
| [praise] | Explicitly noting good work |
Format each comment:
Post a top-level summary when leaving >3 comments. Include: what you reviewed, what worked well, what must change before merge.
Resolve disagreements by escalating to data or a third party, not by repeating the same point. If it's non-critical and working, approve it.
❌ Vague:
This is insecure.
✅ Actionable:
[blocking] This query interpolates `userId` directly into the SQL string,
which allows SQL injection. Use a parameterized query instead:
db.query('SELECT * FROM users WHERE id = ?', [userId])
Any unsanitized user input hitting the DB is a P0.
❌ Commanding:
Extract this into a service class.
✅ Collaborative:
[nit] `calculateTotal()` currently handles tax, discounts, and DB writes.
If we ever need to unit test the tax logic in isolation, that mix will be
painful. Would it make sense to split the pure calculation out? Happy to
pair on it if useful — not blocking this PR.
[nit] comments as required changes. Use Request Changes only for actual blockers.testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
data-ai
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
tools
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions