Five-axis code review framework. Use when reviewing your own changes before merge, or reviewing PR. Evaluates correctness, readability, architecture, security, performance.
Instalación
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Five-axis code review framework. Use when reviewing your own changes before merge, or reviewing PR. Evaluates correctness, readability, architecture, security, performance.
Code Review — Five-Axis Framework
Combined from class-ai-agent/.claude/commands/review.md + superpowers/skills/requesting-code-review. Used for both self-review before opening a PR and reviewing teammates' PRs (anh là default reviewer).
When to use
After finishing a feature task / bug fix, before commit or PR.
Before merging a branch into develop (or develop → deploy for releases).
When stuck — fresh perspective on the code you just wrote.
Before a large refactor — baseline check.
5 evaluation axes
1. Correctness — does the code do the right thing?
✅ Good — highlight what was done well (preserves morale, reinforces good patterns).
Example:
## Code Review: FallRepository (health_system mobile)
### 🔴 Critical
- `confirmSOS` doesn't validate `userId` ≠ null before the dio.post → crash if user logs out racing with countdown. Fix: throw `AppError.unauthenticated()` early in repo, OR enforce auth at controller layer before calling repo.
### 🟡 Important
- Endpoint URL `/api/mobile/sos/confirm` hardcoded inline. If backend renames endpoint, mobile needs rebuild. Suggest: extract to `ApiPaths.sosConfirm` constant in `lib/core/network/api_paths.dart`.-`dio.post` not wrapped in try-catch → raw `DioException` propagates to UI. Suggest: catch + map to domain error (`Result.failure(NetworkError(...))`).
### 🟢 Suggestion- Magic string `'/api/mobile/sos/confirm'` appears 2 times. Extract to constant.
### ✅ Good- Tests cover happy path, missing userId, network failure, 401 response.
- Clear naming `confirmSOS` matches UC013 wording (not generic `submit`).
- dio interceptor configured at app boot — no per-call boilerplate.
Anti-patterns in review
Anti-pattern
Problem
"Looks good to me" without reading carefully
Rubber-stamp = no review
Bikeshedding naming when there's an unresolved 🔴
Loses focus on the real issue
Suggesting a rewrite of a whole module in a small PR
Scope creep
Blocking PRs over style preference (if vs ternary)
Going religious, not shipping
Cross-skill / when to use vs others
Need
Use
Quick PR/commit self-review (5-min checklist)
This skill
Feature deep audit with 8-criteria score + Vietnamese report (cho stakeholder)
detailed-feature-review skill
Module-level code health audit
/audit workflow
Project-level overview (entire admin or mobile)
TongQuan skill
Sync PM_REVIEW docs với code reality
CHECK skill
Self-review = ship faster
15 minutes of self-review saves:
30 minutes of debugging post-merge.
2 hours of rollback if it breaks prod.
Reputation with the team.
Quick checklist (run fast before commit)
[ ] Tests pass: ran the command, read the output (skill `verification-before-completion`)
[ ] Lint clean: `flutter analyze` / `npm run lint` exit 0
[ ] No commented-out dead code blocks
[ ] No console.log / print debug statements left over
[ ] No TODO without a linked issue
[ ] Diff focused — only changes for this task, no "while I'm here" 5-file edits
[ ] Commit message is conventional + describes WHY