skills/code-review-checklist/SKILL.md
Generates comprehensive, context-aware code review checklists tailored to the specific codebase, programming language, and team standards. Analyzes PR diffs and suggests what reviewers should focus on.
npx skillsauth add curiositech/windags-skills code-review-checklistInstall 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.
Generate thorough, contextual code review checklists that route attention to highest-risk areas based on what actually changed, not generic advice.
Step 1: Scan PR title, description, and git diff summary to classify change type Step 2: Apply corresponding decision tree, checking items in priority order
IF New Feature:
├─ Security First: Does change touch auth, user input, or data access?
│ ├─ YES → Check input validation, auth boundaries, SQL injection vectors
│ └─ NO → Skip to API review
├─ API Surface: New public methods minimal? Could interface be smaller?
├─ Edge Cases: Test null/empty/max inputs, concurrent access, network failures
└─ Backwards Compatibility: Migration path for breaking changes?
IF Bug Fix:
├─ Triage Severity: Critical (security/data loss) vs Normal vs Cosmetic
│ ├─ CRITICAL → Verify fix addresses root cause, add regression test
│ ├─ NORMAL → Check blast radius, search for similar patterns
│ └─ COSMETIC → Ensure fix doesn't introduce complexity
├─ Root Cause: Comment explains WHY bug occurred, not just what changed
└─ Test Coverage: Regression test fails on old code, passes on new
IF Refactoring:
├─ Behavior Preservation Check: Do existing tests pass unmodified?
│ ├─ YES → Focus on performance implications
│ └─ NO → Require explanation for each test change
├─ No Feature Smuggling: Are behavior changes documented/intentional?
├─ Incremental Safety: Could split into smaller PRs to reduce risk?
└─ Performance Impact: New allocations, DB calls, or O(n) changes?
IF Dependencies:
├─ Version Jump Size: Patch vs Minor vs Major update
│ ├─ MAJOR → Read breaking changes, check for API usage
│ ├─ MINOR → Verify new features don't auto-enable unsafely
│ └─ PATCH → Quick security scan, verify lockfile consistency
├─ Security Focus: Does update address CVE? Check for new vulnerabilities
└─ Bundle Impact: Frontend deps - check bundle size growth
IF Config/Infrastructure:
├─ Secret Exposure: Scan for API keys, passwords, tokens in plain text
├─ Rollback Safety: Can revert without data loss or downtime?
├─ Environment Consistency: Does change work across dev/staging/prod?
└─ Deployment Dependencies: Required manual steps documented?
PR: "Add advanced user search with role filtering"
Files: routes/users.js, services/userSearch.js, test/search.test.js
Decision Tree Application:
userSearch.js line 23: SELECT * FROM users WHERE name LIKE '%${req.query.name}%'What Novice Misses:
Expert Catches:
${req.query.name} allows injectionPR: "Remove transaction wrapper for better performance"
Files: services/payment.js - removes database transaction
Decision Tree Application:
db.transaction() wrapper around payment operationsWhat Novice Misses:
Expert Catches:
Mark review complete only when ALL conditions verified:
This skill should NOT be used for:
system-design skill insteadperformance-optimization skillsecurity-review skilltechnical-decision-making skillDelegate when:
system-designperformance-optimizationsecurity-reviewdatabase-designtechnical-decision-makingdata-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.