| type | skill |
| name | Code Review |
| description | Review code quality, patterns, and best practices |
| skillSlug | code-review |
| phases | ["R","V"] |
| generated | "2026-02-08T00:00:00.000Z" |
| status | filled |
| scaffoldVersion | 2.0.0 |
Code Review
When to Use
Use this skill when reviewing code changes (not full PRs — for PR reviews, use the pr-review skill). This skill focuses on code-level quality, patterns, and adherence to project conventions.
Review Dimensions
1. Clean Architecture Compliance
Critical — these are hard rules:
src/app/core/ must NEVER import from src/app/infra/
- Use cases only depend on interfaces, not concrete implementations
- Entities in
core/entities/ are pure data objects with no infrastructure dependencies
- Repository interfaces in
core/interfaces/ define contracts without implementation details
Check for violations:
from infra.database.mysql import Mysql
from core.interfaces.plants_repository import PlantsRepository
2. Use Case Pattern
Every use case should follow this structure:
class UseCaseName:
def __init__(self, dependency1, dependency2):
self.__dependency1 = dependency1
self.__dependency2 = dependency2
def execute(self, params):
return result
Check:
3. Repository Pattern
class PlantsRepository:
def find_all(self): ...
def find_by_id(self, id): ...
class PlantsRepositoryImpl(PlantsRepository):
def __init__(self, database):
self.__database = database
Check:
4. View/Route Quality
Check:
5. Template Quality
Check:
6. Testing Quality
Check:
Common Issues to Flag
- God use case — Too many responsibilities; should be split
- Leaky abstraction — Repository exposing SQL details to use case
- Missing error handling — Use case not catching expected exceptions
- Hardcoded values — Magic strings instead of constants
- Untested code — New use case without tests
- Debug code —
print() statements or commented-out code left in