Files
2nd/10_Wiki/Topic_Programming/Coding/Quality_Code_Review_Modern.md
T
Antigravity Agent 9148c358d0 docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
2026-07-05 00:33:48 +09:00

6.5 KiB

id, title, category, status, source_trust_level, verification_status, created_at, updated_at, tags, tech_stack, applied_in, aliases
id title category status source_trust_level verification_status created_at updated_at tags tech_stack applied_in aliases
quality-code-review-modern Code Review Modern — AI-assisted / async / culture Coding draft B conceptual 2026-05-09 2026-05-09
quality
review
vibe-coding
language applicable_to
process
Engineering
code review
AI review
CodeRabbit
Greptile
async review
review culture
small PR

Code Review Modern

AI-assisted + culture-aware. CodeRabbit / Greptile (AI), small PR, async-first, blameless.

📖 핵심 개념

  • AI 가 first-pass.
  • Human = critical 만.
  • Small PR culture.
  • Async + thread-based.

💻 코드 패턴

AI review (CodeRabbit)

# .coderabbit.yaml
language: en
reviews:
  profile: chill   # or 'assertive'
  request_changes_workflow: false
  high_level_summary: true
  poem: false
PR open → CodeRabbit 가 review.
- Bug detect.
- Style suggestion.
- Test coverage.
- Documentation.

→ Human 가 critical 만 review.

Greptile / Sourcery

- Greptile: codebase-aware (큰 PR 친화).
- Sourcery: 매 commit refactor.
- Cursor / Copilot: inline.

→ 매 tool 의 different focus.

Self-review (먼저)

PR open 전:
1. Diff 검토.
2. Test 실행.
3. Self-comment ("이 가 의도?").
4. Description 작성.

→ 매 reviewer 의 시간 절감.

PR description

## Why
[motivation]

## What
[change list]

## Testing
- [x] Unit test added.
- [x] Manual test.

## Screenshot / Loom
[image]

## Out of scope
[what NOT done]

Small PR culture

< 100 LOC: ideal.
100-400: OK.
400+: split.

→ 작은 PR = 빠른 review = 빠른 feedback.

PR size 측정

# GitHub
- name: PR size check
  run: |
    LOC=$(gh pr diff ${{ github.event.pull_request.number }} | wc -l)
    if [[ $LOC -gt 1000 ]]; then
      gh pr comment --body 'Large PR — consider split.'
    fi

Review SLA

Target:
- First review: < 4 hour.
- Approve / changes: < 1 day.
- Merge: < 2 day.

→ Long PR = lead time ↑.

Blameless culture

"이 code 가 잘못" — focus on code.
"You wrote bad code" — personal.

→ "이 가 의도?" 보다 "왜 이 approach?" 가 좋음.

Comment 의 levels

Nit: trivial (skippable).
Suggestion: optional improvement.
Question: clarify.
Required: must fix.

→ 명시적 prefix.
nit: extra space here.
suggestion: consider extracting.
question: why this approach?
required: race condition here.

Conventional Comments

@<level>: <subject>

praise: nice abstraction!
nitpick: extra newline.
suggestion: extract to helper.
issue: null pointer possible.
question: why X?
todo: handle error case.
chore: rebase main.

→ 명시적 + structured.

Approval criteria

Don't block on:
- Subjective style.
- Out of scope.
- Future improvement (별 PR).
- Opinion (vs author).

Block on:
- Bug.
- Security.
- Test missing.
- Performance regression.

"Approve with comments"

Critical 가 없 가, suggestion 만:
- Approve (merge OK).
- Comments 가 author 의 discretion.

→ Author 가 ignore OK.
Reviewer 가 trust.

Pair review (paired)

2 reviewer 가 같은 PR.
- Different perspective.
- 1 가 OK, 1 가 changes.
- Critical PR.

Review rotation

Team 의 round-robin:
- Avoid 1 사람 burnout.
- 매 사람 의 codebase 익숙.
- Knowledge spread.

→ GitHub team review (auto round-robin).

Stale PR

- 7 day no activity = warning.
- 14 day = bot reminder.
- 30 day = auto-close.

→ Backlog hygiene.

Pre-commit (catch first)

# .husky/pre-commit
npm run lint
npm run typecheck
npm test

→ Local catch = review 전.

Conventional commit

feat: add OAuth login
fix: resolve race condition in cart
chore: update dependencies
refactor: extract user service
test: add integration tests for checkout
docs: update README
perf: optimize search query

→ Auto changelog + semantic versioning.

Review templates

### Functional review
- [ ] Code does what it claims.
- [ ] Edge cases.
- [ ] Error handling.
- [ ] Performance.
- [ ] Security.

### Code quality
- [ ] Readable.
- [ ] DRY (no duplicate).
- [ ] Tests.
- [ ] Comments where needed.

Type of review

Architectural: design, structure.
Functional: behavior, correctness.
Style: format, naming.
Performance: complexity.
Security: vuln.

→ 매 PR 의 focus 따라.

Reviewer fatigue

1 일 5+ PR = quality ↓.

→ Limit. Pair.

LLM-assisted human review

Cursor / Copilot 가:
- Diff summary.
- Specific concern (security, perf).
- Refactor suggestion.

→ Human 가 critical 만 + LLM 가 noise.

Code review 의 ROI

Pros:
- Bug catch.
- Knowledge transfer.
- Code quality.
- Mentor.

Cons:
- Time (1 hour / day / dev).
- Bottleneck.
- Conflict.

→ Process 의 efficiency 가 key.

Pair programming (review alternative)

2 사람 가 real-time:
- 매 commit 가 already reviewed.
- 빠른 feedback.
- 작은 work 의 sweet.

→ Critical / 어려운 task 만.

Review metric

- Time to first review.
- Iterations per PR.
- LOC per PR.
- Approval rate.
- Bug rate (post-merge).

→ DORA-style metric.

Quality_Engineering_Excellence.

Tools (modern)

- GitHub PR (default).
- Reviewable / Pull Reviewers (3rd party).
- CodeRabbit / Greptile (AI).
- Graphite (stack-based PR).
- Sapling (Meta).

Stack-based PR (Graphite)

1 feature = 5 작은 PR (stack).
- 매 PR = 작은.
- Sequential merge.
- Big feature = manageable.

→ 큰 feature 의 답.

Best practice

1. Self-review 먼저.
2. Small PR (<400 LOC).
3. PR description 의 why.
4. AI assist (CodeRabbit).
5. Async + threaded comment.
6. Conventional comments.
7. Approve with comments OK.
8. Don't block on opinion.

🤔 의사결정 기준

작업 추천
AI first-pass CodeRabbit / Greptile
Small PR < 400 LOC
Big feature Stack (Graphite)
Critical Pair review
Fast feedback Pair programming
Async team Threaded comment

안티패턴

  • Big PR (1000+): slow review.
  • No description: 시간 낭비.
  • Block on opinion: morale.
  • Personal attack: blameless.
  • No SLA: lead time ↑.
  • Manual everything: AI 의 가치.

🤖 LLM 활용 힌트

  • AI review (CodeRabbit) 가 first-pass.
  • Small PR + async + blameless.
  • Conventional comments 가 structured.
  • DORA metric 의 lead time.

🔗 관련 문서