Skip to main content
reopt Handbook
reopt Handbook
Developer Unlearning

Why Change

When Expertise Becomes WeightThe Illusion That I Must Write Everything

Design and Implementation Shift

From Up-Front Design to Iterative DesignPrompts Are Design LanguageCode Review in the AI Era

Practice Reset

Testing Strategy ShiftDebugging Habit ResetContext Management: The New Core SkillRedefining Technical Debt

Team and Career

Team Workflow ChangeWhat Not to UnlearnAgentic Transition Strategy

Appendix

Verification ReportUpdate Log
Handbook›Developer Unlearning›Code Review in the AI Era
한국어English

Code Review in the AI Era

Shift from reviewing handwritten code to verifying AI-generated code against intent and system context.

Key takeaways

  • AI-era review shifts the core question from "why did the author write it this way?" to "does this code behave as intended in our system?"
  • AI-generated code is often syntactically clean yet presents wrong logic with the same confidence as correct logic, so zero lint warnings never prove business correctness.
  • Prioritize review by AI mistake rate times impact: P0 security and auth need a senior reviewer, while P3 style and formatting go to CI and the formatter.
  • Watch for the recurring AI failures: silent failures that return success, N+1 query loops, and unauthenticated or unconstrained search endpoints.
  • An AI-collaboration PR template captures intent, AI involvement, human verification, and reviewer focus so reviewers know where to look.

Code review remains central, but the question changes. Traditional review asks, "Why did the author write it this way?" AI-era review asks, "Does this code behave as intended in our system?"

Broken Assumptions

Review areaOld assumptionAI-era reality
StyleA teammate knows team conventionsAI infers conventions from context
IntentThe author can explain decisionsIntent is in the prompt and surrounding context
Business logicThe author understood the domainAI implements what was explicit
Edge casesExperience fills gapsAI may cover common cases and miss local cases
PerformanceThe author knows system pressureAI often optimizes locally

Four Traits of AI-Generated Code

  1. It is often syntactically clean.
  2. It has limited understanding of hidden system contracts.
  3. It can be too generic or overfit to the prompt.
  4. It presents wrong code with the same confidence as right code.

Clean code can still be wrong

Zero lint warnings do not prove business correctness, security, or context fit.

Review Priority

PriorityReview itemOwner
P0Security, auth, data exposureSenior reviewer required
P1Business logic, concurrency, API contractsDomain expert
P2Error handling, type safetyGeneral reviewer
P3Style, formatting, namingCI and formatter

Common AI Mistakes

Silent Failure

if (!order) {
  console.log('Order not found')
  return { success: true }
}

The code is clean but operationally dangerous. A missing order should be logged, alerted, retried, or rejected depending on the webhook contract.

N+1 Queries

AI often writes correct per-record logic and misses loop-level performance:

const membersWithProjects = await Promise.all(
  team.members.map(async (member) => {
    const projects = await db.project.findMany({ where: { assigneeId: member.id } })
    return { ...member, projects }
  })
)

Reviewers should look for query count, unbounded collections, and missing null handling.

Security Gaps

const users = await db.user.findMany({
  where: { email: { contains: query } },
})
return NextResponse.json(users)

Ask: Is the route authenticated? Are fields selected explicitly? Is the search allowed by policy? Is input length constrained?

AI Collaboration PR Template

### Intent
- What behavior changed?

### AI involvement
- Draft generation / tests / refactor / research

### Human verification
- Business rule checked
- Security and permissions checked
- Tests passed

### Reviewer focus
- Missing edge cases
- Over-generalized abstraction
- Hidden system contracts

Next

Read Testing Strategy Shift to turn review criteria into executable safeguards.

Related docs

Team Workflow Change

How division of labor, review, and communication change when AI participates like a teammate.

Evaluation Loop Design

Harness Engineering · Use Anthropic and gstack patterns to decide when planner, builder, evaluator, and QA should be separated.

Prompts Are Design Language

Treat prompts as a new form of design specification, not just text sent to AI.

Testing Strategy Shift

From tests after implementation to tests that drive AI-assisted implementation.

On this page

Broken AssumptionsFour Traits of AI-Generated CodeReview PriorityCommon AI MistakesSilent FailureN+1 QueriesSecurity GapsAI Collaboration PR TemplateNext