receiving-code-review

$npx mdskill add microsoft/FluidFramework/receiving-code-review

Code review requires technical evaluation, not emotional performance.

SKILL.md

.github/skills/receiving-code-reviewView on GitHub ↗
---
name: receiving-code-review
description: Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
---

# Code Review Reception

## Overview

Code review requires technical evaluation, not emotional performance.

**Core principle:** Fetch feedback → Verify → Implement → Re-test → Push updates.

**Announce at start:** "I'm using the Nori Receiving Code Review skill to handle this feedback."

## The Process

### Step 0: Create Todo List

**For multi-item feedback, use TodoWrite:**

```
- [ ] Fetch and read all PR comments
- [ ] Clarify unclear items (if any)
- [ ] Fix item 1: [description]
- [ ] Fix item 2: [description]
...
- [ ] Run tests/lint/format
- [ ] Push updates
```

**Why:** Prevents skipping items and provides visibility to user.

### Step 1: Fetch PR Comments

**Determine PR number from context:**

- User mentions PR number: Use that
- Current branch: Run `gh pr view --json number -q .number`

**Fetch all comments:**

```bash
# View all comments (review + general)
gh pr view [PR-NUMBER] --comments
```

**Read completely before reacting.**

### Step 2: Understand and Clarify

**Apply these checks to each item:**

- [ ] Can I restate this requirement in my own words?
- [ ] Is this technically sound for THIS codebase?
- [ ] Does this break existing functionality?
- [ ] Is there a reason for the current implementation?

**CRITICAL:** If ANY item is unclear, STOP. Ask for clarification on ALL unclear items before implementing ANYTHING.

**Example:**

```
User: "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."
❌ Implement 1,2,3,6 now, ask about 4,5 later
```

### Step 3: Implement Changes

**Follow implementation order:**

1. Blocking issues (breaks, security)
2. Simple fixes (typos, imports)
3. Complex fixes (refactoring, logic)

**For each fix:**

- [ ] Implement one at a time
- [ ] Test individually
- [ ] Commit individually (frequent commits)

**YAGNI check:** If reviewer suggests "implementing properly", grep for actual usage:

```bash
grep -r "endpointName" .
```

If unused: "This endpoint isn't called. Remove it (YAGNI)?"

### Step 4: Run Tests, Lint, and Format

**Reference finishing-a-development-branch skill (Steps 1-2):**

See `.claude/skills/finishing-a-development-branch/SKILL.md`

- [ ] Run tests: `npm test` (or project equivalent)
  - If tests fail, fix before proceeding
- [ ] Run type checks: `npm run lint:*-types` (if available)
  - If type errors, fix before proceeding
- [ ] Run formatter: `npm run format`
- [ ] Run linter: `npm run lint`
- [ ] Verify changes: `git diff --stat`

### Step 5: Push Updates

**Push changes to PR:**

```bash
git push
```

### Step 6: Summary and Next Action

**Report what changed:**

"Code review feedback addressed:

- Fixed [item 1]: [brief description]
- Fixed [item 2]: [brief description]
  ...

Changes pushed to PR. Options:

1. **Done** - PR is ready for re-review
2. **More feedback** - Additional changes needed
3. **Show changes** - Review diffs before marking done

Which would you like?"

## Quick Reference Checklist

- [ ] Create TodoWrite for all feedback items
- [ ] Fetch PR comments (`gh pr view --comments`)
- [ ] Clarify ALL unclear items before implementing ANY
- [ ] Implement in order: blocking → simple → complex
- [ ] Test each fix individually
- [ ] Run tests, type checks, formatting, linting (finishing-a-development-branch)
- [ ] Push updates
- [ ] Summarize changes and ask for next action

## Response Tone Guidelines

**Forbidden:**

- "You're absolutely right!" / "Great point!" / "Thanks for..." (performative agreement)
- Implementing before verifying against codebase
- Proceeding with unclear feedback

**Required:**

- Verify suggestions against codebase reality before implementing
- Push back with technical reasoning if suggestion breaks things or violates YAGNI
- Ask for clarification on ALL unclear items before implementing ANY items
- State fixes factually: "Fixed. [what changed]" or just show the code

**YAGNI check:** If reviewer suggests "implementing properly", grep for actual usage. If unused, ask: "This endpoint isn't called. Remove it (YAGNI)?"

**When wrong after pushing back:** "You were right - checked [X] and it does [Y]. Implementing now." No apology needed.

**External reviewers:** Check if technically correct for THIS codebase, works on all platforms, doesn't conflict with partner's prior decisions. If conflicts, discuss with partner first.

**Signal discomfort pushing back:** "Strange things are afoot at the Circle K"

## 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 |

## Red Flags

**Never:**

- Skip creating TodoWrite for multi-item feedback
- Implement without verifying against codebase
- Proceed with unclear feedback
- Skip tests/linting/formatting before pushing

**Always:**

- Read all feedback completely first
- Clarify unclear items before implementing
- Test each fix individually
- Run full verification before pushing
- Provide summary of changes to user

More from microsoft/FluidFramework

SkillDescription
api-changesUse when customer-facing API changes were made — i.e., API report .md files differ from main. Guides through release tag assignment, API Council review requirements, breaking change classification, deprecation process, and changeset guidance. Triggered automatically by ci-readiness-check when api-report diffs are detected.
brainstormingIMMEDIATELY USE THIS SKILL when creating or develop anything and before writing code or implementation plans - refines rough ideas into fully-formed designs through structured Socratic questioning, alternative exploration, and incremental validation
building-ui-uxUse when implementing user interfaces or user experiences - guides through exploration of design variations, frontend setup, iteration, and proper integration
ci-readiness-checkUse when the user explicitly asks for a CI check or to push their branch — e.g. "ci readiness", "check ci", "pre-push check", "ready for CI", "ci check", "ready to push", "push my changes", "push the branch", "let's push". Catches common CI failures before pushing — formatting, stale API reports, missing changesets, policy violations.
creating-debug-tests-and-iteratingUse this skill when faced with a difficult debugging task where you need to replicate some bug or behavior in order to see what is going wrong.
creating-skillsUse when you need to create a new custom skill for a profile - guides through gathering requirements, creating directory structure, writing SKILL.md, and optionally adding bundled scripts
ff-oce-dashboardGenerate the OCE shift status dashboard. Triggers on: 'generate shift dashboard', 'show dashboard', 'shift status', 'status dashboard', 'what's going on', or any request for a NON-SPECIFIC overview of current OCE status (incidents, pipelines, errors).
ff-oce-kustoUse this skill for any Kusto query or telemetry investigation specifically related to Fluid Framework or its partners. Triggers include: writing or running a Kusto query against the Office Fluid database, investigating Fluid Framework telemetry or error rates, querying Office_Fluid_FluidRuntime_* tables, looking up a Fluid session by Session_Id or docId, investigating a Fluid-related error in Loop or Whiteboard telemetry, monitoring an FF bump or partner ring deployment, checking Fluid render reliability or Scriptor errors, or when the user mentions Fluid-specific tables (Office_Fluid_FluidRuntime_*, OwhLoads, HostTracker, Scriptor) or Fluid-specific error types (dataCorruptionError, dataProcessingError, DeltaConnectionFailureToConnect, ICE, ACE). Do NOT trigger for general Kusto questions that are not related to Fluid Framework.
finishing-a-development-branchUse this when you have completed some feature implementation and have written passing tests, and you are ready to create a PR.
fluid-prUse when creating a pull request in the Fluid Framework repo. Composes a PR title and body following Fluid Framework conventions, proposes them to the user, then pushes the branch and creates the PR on GitHub. Triggers on "create a PR", "make a PR", "open a PR", "submit a PR", or "push and create a PR".