--- name: code-review description: Perform code reviews. Use when reviewing pull requests, examining code changes, or providing feedback on code quality. Covers security, performance, testing, and design review. --- # Code Review Follow these guidelines when reviewing code. ## Review Checklist ### Identifying Problems Look for these issues in code changes: - **Runtime errors**: Potential exceptions, null pointer issues, out-of-bounds access - **Performance**: Unbounded O(n²) operations, N+1 queries, unnecessary allocations - **Side effects**: Unintended behavioral changes affecting other components - **Backwards compatibility**: Breaking API changes without migration path - **ORM queries**: Complex Django ORM with unexpected query performance - **Security vulnerabilities**: Injection, XSS, access control gaps, secrets exposure ### Design Assessment - Do component interactions make logical sense? - Does the change align with existing project architecture? - Are there conflicts with current requirements or goals? ### Test Coverage Every PR should have appropriate test coverage: - Functional tests for business logic - Integration tests for component interactions - End-to-end tests for critical user paths Verify tests cover actual requirements and edge cases. Avoid excessive branching or looping in test code. ### Long-Term Impact Flag for senior engineer review when changes involve: - Database schema modifications - API contract changes - New framework or library adoption - Performance-critical code paths - Security-sensitive functionality ## Feedback Guidelines ### Tone - Be polite and empathetic - Provide actionable suggestions, not vague criticism - Phrase as questions when uncertain: "Have you considered...?" ### Approval - Approve when only minor issues remain - Don't block PRs for stylistic preferences - Remember: the goal is risk reduction, not perfect code