Five-axis code review framework. Use when reviewing your own changes before merge, or reviewing PR. Evaluates correctness, readability, architecture, security, performance.
インストール
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
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: PostRepository### 🔴 Critical-`createPost` doesn't validate `authorId` ≠ null before the query → crash if the user logs out racing with upload. Fix: throw `AppError.unauthenticated()` early.
### 🟡 Important- Field `imageUrl` is stored raw from the client. If the client sends a URL outside Firebase Storage (third-party CDN) → loss of control. Suggest: validate the prefix `gs://meep-prod.appspot.com/` or upload via a Function.
### 🟢 Suggestion- Magic string `'posts'` appears 3 times. Extract `static const _collection = 'posts'`.
### ✅ Good- Tests cover empty caption, max length, server timestamp.
- Clear naming `createPost` instead of `add`.
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
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