with one click
code-review-checklist
// MANDATORY Code Review Checklist. Evaluates code against ALL project standards. Invoke AFTER writing/modifying code and BEFORE finalizing response. Automatically fix and re-evaluate until all checks pass.
// MANDATORY Code Review Checklist. Evaluates code against ALL project standards. Invoke AFTER writing/modifying code and BEFORE finalizing response. Automatically fix and re-evaluate until all checks pass.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | code-review-checklist |
| description | MANDATORY Code Review Checklist. Evaluates code against ALL project standards. Invoke AFTER writing/modifying code and BEFORE finalizing response. Automatically fix and re-evaluate until all checks pass. |
CRITICAL RULE: Whenever you add or modify code, you MUST mentally or explicitly run through this checklist. If the code fails ANY check, you MUST automatically fix the code and re-evaluate until it fully passes. Do not return unverified/failing code to the user.
bypass_justification.md explaining the conflict, and ask the human for guidance.java-backend-api-standard)@PathVariable: All parameters must use @RequestBody or @RequestParam./add, /update, /delete, /page, /list).@ResourceLock.@Validated or @Valid.ApiResponse for simple/independent validations. However, if the operation requires transaction rollback or is deeply nested, the Service MUST throw a DomainException to guarantee data consistency. Controllers catch or return these accordingly.checkstyle).*)? Correct grouping order used?@author, @date as yyyy-MM-dd, @param, @return)?@RequiredArgsConstructor used for constructor injection? (NO @Autowired on fields).UpperCamelCase for classes, lowerCamelCase for methods/variables, proper POJO suffixes (Request, Response).java-backend-guidelines)Objects.isNull() or Objects.nonNull() instead of obj == null?cn.hutool.core.bean.BeanUtil for object mapping?for or while loop? (MANDATORY FIX: Refactor to batch queries in() and memory mapping).UserService should not directly modify Order tables; it should call OrderService).@Transactional only wrapping the necessary database operations? (Keep heavy computations or RPC calls OUTSIDE the transaction).mybatis-sql-standard)TenantLineInnerInterceptor. DO NOT manually append .eq(Entity::getTenantId, tenantId) unless explicitly ignoring the interceptor..eq(Entity::getIsDeleted, false) included?SELECT *: Are specific columns queried instead of * in XML?= in the WHERE clause? (e.g., no DATE(create_time) = ?).error-code-standard)PARAM_INVALID, DATA_DUPLICATED, HAS_DEPENDENCY) instead of creating new ones?new DomainException(AbstractErrorCode.DATA_DUPLICATED, "Role name already exists")).new DomainException(AbstractErrorCode.PARAM_INVALID, "Specific reason here")).At the end of your task, append a short checklist summary. Example:
✅ CR Checklist Report:
- Evaluated code against checkstyle, error codes, and API standards.
- Self-correction: Found a wildcard import (
import java.util.*;) and replaced it with explicit imports.- All checks passed.
requesting-code-review)Use a review request to catch issues early and create an evidence-backed handoff.
receiving-code-review)Treat feedback as technical input to verify, not an order to blindly implement.
Response pattern:
Red flags: