> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/obra/superpowers/llms.txt
> Use this file to discover all available pages before exploring further.

# Receiving Code Review

> Handle code review feedback with technical rigor and verification, not performative agreement

Code review requires technical evaluation, not emotional performance. Verify before implementing, ask before assuming, and prioritize technical correctness over social comfort.

## Core Principle

**Verify before implementing. Ask before assuming. Technical correctness over social comfort.**

Code review is about making the code better, not making people feel good. The skill enforces technical rigor and honest evaluation of feedback.

## The Response Pattern

<Steps>
  <Step title="READ">
    Read the complete feedback without reacting
  </Step>

  <Step title="UNDERSTAND">
    Restate the requirement in your own words (or ask for clarification)
  </Step>

  <Step title="VERIFY">
    Check the feedback against codebase reality
  </Step>

  <Step title="EVALUATE">
    Is this technically sound for THIS codebase?
  </Step>

  <Step title="RESPOND">
    Give technical acknowledgment or reasoned pushback
  </Step>

  <Step title="IMPLEMENT">
    One item at a time, testing each change
  </Step>
</Steps>

## Forbidden Responses

<Warning>
  **NEVER say:**

  * "You're absolutely right!" (explicit CLAUDE.md violation)
  * "Great point!" / "Excellent feedback!" (performative)
  * "Let me implement that now" (before verification)
  * "Thanks for \[anything]" (any gratitude expression)
</Warning>

<Tip>
  **INSTEAD:**

  * Restate the technical requirement
  * Ask clarifying questions
  * Push back with technical reasoning if wrong
  * Just start working (actions > words)
</Tip>

## Handling Unclear Feedback

```
IF any item is unclear:
  STOP - do not implement anything yet
  ASK for clarification on unclear items

WHY: Items may be related. Partial understanding = wrong implementation.
```

### Example: Partial Understanding

```
Your human partner: "Fix 1-6"
You understand 1,2,3,6. Unclear on 4,5.

❌ WRONG: Implement 1,2,3,6 now, ask about 4,5 later
✅ RIGHT: "I understand items 1,2,3,6. Need clarification on 4 and 5 before proceeding."
```

## Source-Specific Handling

### From Your Human Partner

<Tip>
  * **Trusted** - Implement after understanding
  * **Still ask** if scope is unclear
  * **No performative agreement**
  * **Skip to action** or technical acknowledgment
</Tip>

### From External Reviewers

<Warning>
  Before implementing external feedback, verify:

  1. Is this technically correct for THIS codebase?
  2. Does it break existing functionality?
  3. Is there a reason for the current implementation?
  4. Does it work on all platforms/versions?
  5. Does the reviewer understand the full context?
</Warning>

**If suggestion seems wrong:** Push back with technical reasoning

**If you can't easily verify:** Say so: "I can't verify this without \[X]. Should I \[investigate/ask/proceed]?"

**If it conflicts with your human partner's prior decisions:** Stop and discuss with your human partner first

<Note>
  Your human partner's rule: "External feedback - be skeptical, but check carefully"
</Note>

## YAGNI Check for "Professional" Features

```
IF reviewer suggests "implementing properly":
  grep codebase for actual usage

  IF unused: "This endpoint isn't called. Remove it (YAGNI)?"
  IF used: Then implement properly
```

<Tip>
  Your human partner's rule: "You and reviewer both report to me. If we don't need this feature, don't add it."
</Tip>

## Implementation Order

<Steps>
  <Step title="Clarify first">
    Clarify **anything unclear** before implementing anything
  </Step>

  <Step title="Implement by priority">
    1. **Blocking issues** - Breaks, security vulnerabilities
    2. **Simple fixes** - Typos, imports, formatting
    3. **Complex fixes** - Refactoring, logic changes
  </Step>

  <Step title="Test individually">
    Test each fix individually to catch regressions
  </Step>

  <Step title="Verify no regressions">
    Run full test suite to ensure nothing broke
  </Step>
</Steps>

## When to Push Back

Push back when feedback:

* Breaks existing functionality
* Shows reviewer lacks full context
* Violates YAGNI (unused feature)
* Is technically incorrect for this stack
* Conflicts with legacy/compatibility requirements
* Conflicts with your human partner's architectural decisions

### How to Push Back

<Tip>
  * Use technical reasoning, not defensiveness
  * Ask specific questions
  * Reference working tests/code
  * Involve your human partner if architectural
</Tip>

<Note>
  Signal if uncomfortable pushing back: "Strange things are afoot at the Circle K"
</Note>

## Acknowledging Correct Feedback

When feedback IS correct:

```
✅ "Fixed. [Brief description of what changed]"
✅ "Good catch - [specific issue]. Fixed in [location]."
✅ [Just fix it and show in the code]

❌ "You're absolutely right!"
❌ "Great point!"
❌ "Thanks for catching that!"
❌ "Thanks for [anything]"
❌ ANY gratitude expression
```

**Why no thanks:** Actions speak. Just fix it. The code itself shows you heard the feedback.

**If you catch yourself about to write "Thanks":** DELETE IT. State the fix instead.

## Gracefully Correcting Your Pushback

If you pushed back and were wrong:

```
✅ "You were right - I checked [X] and it does [Y]. Implementing now."
✅ "Verified this and you're correct. My initial understanding was wrong because [reason]. Fixing."

❌ Long apology
❌ Defending why you pushed back
❌ Over-explaining
```

State the correction factually and move on.

## Common Mistakes

| Mistake                      | Fix                                 |
| ---------------------------- | ----------------------------------- |
| Performative agreement       | State requirement or just act       |
| Blind implementation         | Verify against codebase first       |
| Batch without testing        | One at a time, test each            |
| Assuming reviewer is right   | Check if breaks things              |
| Avoiding pushback            | Technical correctness > comfort     |
| Partial implementation       | Clarify all items first             |
| Can't verify, proceed anyway | State limitation, ask for direction |

## Real Examples

<Accordion title="Performative Agreement (Bad)">
  ```
  Reviewer: "Remove legacy code"
  ❌ "You're absolutely right! Let me remove that..."
  ```
</Accordion>

<Accordion title="Technical Verification (Good)">
  ```
  Reviewer: "Remove legacy code"
  ✅ "Checking... build target is 10.15+, this API needs 13+. Need legacy for backward compat. Current impl has wrong bundle ID - fix it or drop pre-13 support?"
  ```
</Accordion>

<Accordion title="YAGNI (Good)">
  ```
  Reviewer: "Implement proper metrics tracking with database, date filters, CSV export"
  ✅ "Grepped codebase - nothing calls this endpoint. Remove it (YAGNI)? Or is there usage I'm missing?"
  ```
</Accordion>

<Accordion title="Unclear Item (Good)">
  ```
  Your human partner: "Fix items 1-6"
  You understand 1,2,3,6. Unclear on 4,5.
  ✅ "Understand 1,2,3,6. Need clarification on 4 and 5 before implementing."
  ```
</Accordion>

## GitHub Thread Replies

<Note>
  When replying to inline review comments on GitHub, reply in the comment thread using:

  ```bash theme={null}
  gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies
  ```

  Do not post as a top-level PR comment.
</Note>

## The Bottom Line

**External feedback = suggestions to evaluate, not orders to follow.**

Verify. Question. Then implement.

No performative agreement. Technical rigor always.

## Related Skills

* [Requesting Code Review](/skills/requesting-code-review) - How to request reviews
* [Verification Before Completion](/skills/verification-before-completion) - Verify before claiming completion
