# Project Review Checklist ## Architecture and maintainability - Module boundaries are clear. - Cross-layer dependencies are controlled. - The code does not hide business logic in the wrong layer. - Naming is precise and stable. - Public interfaces are coherent. ## Python backend - Type coverage and strictness align with project configuration. - Async and I/O boundaries are explicit and safe. - Data validation and domain modeling are coherent. - Error handling is consistent. - Dependency usage is justified and clean. - Imports, complexity, and dead code align with configured linters. - Modern Python features are used when they improve the code and match the configured interpreter version. ## React or Next.js frontend - Components are readable and easy to modify. - State ownership is clear. - Derived state and side effects are not overcomplicated. - Data fetching and caching strategy are coherent. - Accessibility, loading states, empty states, and error states are covered. - Expensive renders, unstable props, and unnecessary abstractions are avoided. - Newer framework features are used where they meaningfully improve code quality and are supported by the installed version. ## Performance and optimization - Hot paths are identified. - No obvious over-fetching or over-rendering. - Expensive work is not repeated without reason. - Assets and bundles are handled sensibly. ## Dependency and configuration hygiene - Dependencies match actual imports and usage. - Dev and runtime dependencies are separated properly. - Tooling configuration is coherent. - The code follows the quality rules implied by the configuration files. ## Security and reliability - Sensitive flows are validated. - Auth and permission checks are consistent. - Dangerous defaults are avoided. - Error handling does not leak implementation details. ## Testing and verification - Tests cover high-risk business flows. - Assertions are meaningful. - Cleanup and fixture behavior are reliable. - Gaps in test coverage are identified honestly.