--- description: Review recent code changes for completeness, accuracy, tech debt, maintainability, extensibility, and DRY/CLEAN code argument-hint: <"recent" | "staged" | "unstaged" | file path | git commit range> allowed-tools: Task, Read, Write, Edit, Glob, Grep, Bash --- Review this code: $ARGUMENTS ## Instructions Load the `code-reviewer` skill, then: ### 1. Identify What to Review | Argument | What to Review | |----------|---------------| | `recent` | `git diff HEAD~1` (last commit) | | `staged` | `git diff --cached` (staged changes) | | `unstaged` | `git diff` (working directory) | | file path | Specific file(s) | | commit range | `git diff ` | ### 2. Review Each Dimension | Dimension | Key Question | |-----------|--------------| | **Completeness** | Does it do everything it should? | | **Accuracy** | Is it correct? Edge cases? Errors? | | **Tech Debt** | Are we creating future problems? | | **Maintainability** | Can someone else understand this? | | **Extensibility** | Can this grow without rewrites? | | **DRY** | Is there duplicated logic? | | **CLEAN** | Clear, Logical, Efficient, Accurate, Neat? | ### 3. Categorize by Severity | Severity | Meaning | |----------|---------| | **BLOCKER** | Cannot ship | | **CRITICAL** | Significant risk | | **WARNING** | Quality concern | | **SUGGESTION** | Improvement | | **PRAISE** | Good practice | ### 4. Provide Proper Fixes For each issue: - Location (file:line) - What's wrong and why it matters - **Production-quality fix** (not a quick patch) ### 5. Summarize - Overall recommendation: APPROVE / REQUEST_CHANGES - Count by severity - Key action items - What's done well ## Quick Checks ### Go ```bash grep -n "panic(\|log.Fatal" [files] # Should use error returns grep -n "// TODO\|// FIXME" [files] # Tracked? ``` ### TypeScript ```bash grep -n ": any\|as any" [files] # Should be typed grep -n "console.log" [files] # Debug left in? ``` ## Critical Rules - ALWAYS provide production-quality fixes - ALWAYS categorize by severity - ALWAYS acknowledge good practices - NEVER block on formatting (formatters do that) - NEVER critique without alternative