# Reviewing Code

> Perform a thorough code review focused on correctness, maintainability, performance, and best pra…

Perform a thorough code review focused on correctness, maintainability, performance, and best practices.

- Page: https://ss33.ai/skills/spencerpauly/reviewing-code-27517608192
- Publisher: spencerpauly
- Category: [Software Development](https://ss33.ai/skills/category/software-development-t44z8z) › [Source control & code review](https://ss33.ai/skills/category/software-development-t44z8z/source-control-and-code-review-jebezw)
- License: CC0-1.0
- Source: https://github.com/spencerpauly/awesome-cursor-skills/blob/99cd2655788456cc1c685944dcf8c2de82c1ded4/resources/reviewing-code/SKILL.md

## Skill

SKILL.md: https://ss33.ai/api/v1/ss33/download/spencerpauly/reviewing-code-27517608192

# Code Review

Use this skill when the user asks for a code review, feedback on their code, or to check code quality.

## Steps

1. **Understand the change** — read the files or diff to understand what the code is supposed to do. Identify the scope (new feature, bug fix, refactor).

2. **Check correctness**
   - Does the code handle edge cases (empty input, null, zero, negative numbers)?
   - Are error states handled (try/catch, error boundaries, fallback UI)?
   - Does async code handle race conditions, cancellation, and timeouts?
   - Are there off-by-one errors in loops or array access?

3. **Check maintainability**
   - Are functions focused on a single responsibility?
   - Are variable and function names descriptive?
   - Is there unnecessary duplication that should be extracted?
   - Are magic numbers replaced with named constants?
   - Is the code complexity reasonable (deeply nested conditionals, long functions)?

4. **Check performance**
   - Are there N+1 query patterns in database access?
   - Are expensive computations or API calls happening in render loops?
   - Are large lists missing virtualization or pagination?
   - Are there missing indexes for common database queries?
   - Is memoization used appropriately (not over-applied)?

5. **Check type safety** (TypeScript projects)
   - Are there `any` types that should be narrowed?
   - Are function return types explicit for public APIs?
   - Are union types handled exhaustively?

6. **Check testing**
   - Are there tests for the new/changed code?
   - Do tests cover the happy path AND error cases?
   - Are tests isolated (no shared mutable state)?

7. **Provide feedback** — organize findings by severity:
   - **Must fix**: bugs, security issues, data loss risks
   - **Should fix**: performance issues, maintainability concerns
   - **Nit**: style preferences, minor suggestions

   For each finding, include the file, line, the issue, and a suggested fix.

## Notes

- Be constructive — explain *why* something is a problem, not just that it is.
- Acknowledge what's done well, not just what needs fixing.
- Don't bikeshed on style issues that a linter/formatter should handle.
