---
name: cm-code-review
description: "Full review lifecycle — request reviews, handle feedback with technical rigor, and complete branch integration. Use when completing tasks, receiving feedback, or finishing feature branches."
---

# Code Review — Request + Receive + Complete

> **Full review lifecycle in one skill:** Request → Receive → Integrate.

## Part A: Requesting Code Review

### When to Request

**Mandatory:**
- After each task in `cm-execution`
- After completing major features
- Before merge to main

**Optional but valuable:**
- When stuck (fresh perspective)
- Before refactoring (baseline check)
- After fixing complex bugs

### How to Request

1. **Get git SHAs:**
   ```bash
   BASE_SHA=$(git rev-parse HEAD~1)
   HEAD_SHA=$(git rev-parse HEAD)
   ```

2. **Dispatch reviewer subagent** with:
   - What was implemented
   - Plan/requirements reference
   - Base and head SHAs
   - Brief description

3. **Act on feedback:**
   - Fix Critical issues immediately
   - Fix Important issues before proceeding
   - Note Minor issues for later
   - Push back if reviewer is wrong (with reasoning)

---

## Part B: Receiving Code Review

### When to Use
When receiving feedback — whether from human reviewers, AI reviewers, or code review subagents.

### The Protocol

```
1. READ feedback completely before responding
2. UNDERSTAND the technical reasoning
3. VERIFY if the feedback is technically correct
4. RESPOND with evidence, not agreement
```

### Response Framework

| Feedback Type | Response |
|--------------|----------|
| **Technically correct** | Fix it. Thank reviewer. |
| **Unclear intent** | Ask for clarification with specific questions |
| **Technically questionable** | Challenge with evidence (code, tests, docs) |
| **Stylistic preference** | Discuss trade-offs, defer to team convention |

### Red Flags — STOP

- Blindly implementing all suggestions without verification
- "Performative agreement" — saying yes without understanding
- Implementing a suggestion that breaks existing tests
- Making changes you can't justify technically

### Anti-Pattern: Performative Agreement

```
❌ "Good catch! Fixed."  (without verifying it's actually a problem)
✅ "I verified this: [evidence]. The suggestion is correct because [reason]. Fixed."
✅ "I investigated this: [evidence]. The current code is correct because [reason]."
```

---

## Part C: Finishing a Development Branch

### When to Use
When implementation is complete and all tests pass.

### The Process

1. **Verify current state:**
   ```bash
   npm run test:gate  # All tests must pass
   git status          # Working tree should be clean
   ```

2. **Present options to user:**

   | Option | When | Command |
   |--------|------|---------|
   | **Merge to main** | Feature ready | `git checkout main && git merge feature-branch` |
   | **Create PR** | Needs team review | `git push origin feature-branch` |
   | **Keep working** | More tasks remain | Continue on branch |
   | **Cleanup only** | Abandoned/merged | `git worktree remove path` |

3. **Execute chosen option**

4. **Cleanup:**
   - Remove worktree if using `cm-git-worktrees`
   - Delete feature branch if merged
   - Update task tracking

### Rules
- Never merge with failing tests
- Never force push main/production
- Always use `cm-identity-guard` before git push

---

### Step FINAL: Record Review Learnings

After processing review feedback, ALWAYS update `.cm/CONTINUITY.md`:

- **Key Decisions:** If reviewer changed architecture approach, record with scope:
  `[Decision]: [Rationale] — scope: [global|module:{name}]`
- **Mistakes & Learnings:** If reviewer caught a pattern mistake, record with scope:
  - What Failed: [the pattern that was wrong]
  - How to Prevent: [correct pattern going forward]
  - Scope: [global | module:{name} | file:{path}]

**Anti-duplicate:** If similar learning exists, reinforce it instead of creating new.

> **Token savings:** Future code reviews in same project avoid repeating
> the same feedback. Reviewer patterns become accumulated knowledge.

---

## Integration

| Skill | Relationship |
|-------|-------------|
| `cm-execution` | Reviews after each task in execution |
| `cm-quality-gate` | Tests must pass before finishing branch |
| `cm-identity-guard` | Before git push |
| `cm-git-worktrees` | Cleanup worktree after completion |

## The Bottom Line

**Review early. Verify feedback. Ship with evidence, not hope.**
