🎯

iterative-code-review

🎯Skill

from iamseungpil/claude-for-dslab

VibeIndex|
What it does

Iteratively improves code quality by using task planning, code architecture, and review agents to systematically enhance and validate code before production deployment.

πŸ“¦

Part of

iamseungpil/claude-for-dslab(8 items)

iterative-code-review

Installation

1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Iteratively improve code quality by using task-planner-analyzer for planning, modular-code-architect agent to fix issues, code-reviewer agent to validate quality, and running tests to verify correctness. Use when implementing new features, after bug fixes, during refactoring, or when preparing code for production deployment. Loops until code-reviewer reports no critical issues AND tests pass.

Overview

# Iterative Code Review

νƒœμŠ€ν¬ ν”Œλž˜λ„ˆ, μ½”λ“œ μ•„ν‚€ν…νŠΈ, μ½”λ“œ 리뷰어λ₯Ό 반볡적으둜 μ‚¬μš©ν•˜κ³ , μ•ˆμ •ν™” ν›„ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜μ—¬ μ½”λ“œλ₯Ό production-ready μˆ˜μ€€κΉŒμ§€ κ°œμ„ ν•˜λŠ” μŠ€ν‚¬μž…λ‹ˆλ‹€.

μ‚¬μš© μ‹œμ 

λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ 이 μŠ€ν‚¬μ„ μ‚¬μš©ν•©λ‹ˆλ‹€:

  • μƒˆλ‘œμš΄ κΈ°λŠ₯ κ΅¬ν˜„ ν›„ ν’ˆμ§ˆ 검증이 ν•„μš”ν•  λ•Œ
  • λ³΅μž‘ν•œ 버그 μˆ˜μ • ν›„ side effect 확인이 ν•„μš”ν•  λ•Œ
  • λ¦¬νŒ©ν† λ§ ν›„ μ½”λ“œ ν’ˆμ§ˆ 검증이 ν•„μš”ν•  λ•Œ
  • Production 배포 μ „ μ΅œμ’… 검증이 ν•„μš”ν•  λ•Œ

μ›Œν¬ν”Œλ‘œμš°

Phase 1: 초기 뢄석

  1. λŒ€μƒ 파일/브랜치 식별
  2. ν˜„μž¬ μƒνƒœ νŒŒμ•… (git status, git diff)
  3. ν…ŒμŠ€νŠΈ ν™˜κ²½ 탐지 (pytest, npm test, cargo test, go test, make test λ“±)
  4. Todo 리슀트 생성

Phase 2: 반볡 κ°œμ„  루프

```

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”

β”‚ β”‚

β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚

β”‚ β”‚ Task Planner │────▢│ Code Architect │────▢│ Code Reviewer β”‚ β”‚

β”‚ β”‚ (뢄석 & κ³„νš) β”‚ β”‚ (μˆ˜μ •) β”‚ β”‚ (κ²€ν† ) β”‚ β”‚

β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚

β”‚ β–² β”‚ β”‚

β”‚ β”‚ β–Ό β”‚

β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚

β”‚ β”‚ β”‚ Critical Issues? β”‚ β”‚

β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚

β”‚ β”‚ β”‚ β”‚

β”‚ β”‚ Yes β”‚ No β”‚

β”‚ └─────────────────────────────────────────────────── β”‚

β”‚ β–Ό β”‚

β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚

β”‚ β”‚ Stable? (3 loops β”‚ β”‚

β”‚ β”‚ or Production Ready)β”‚ β”‚

β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚

β”‚ β”‚ β”‚

β”‚ No β”‚ Yes β”‚

β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚

β”‚ β”‚ β–Ό β”‚

β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚

β”‚ β”‚ β”‚ Run Tests │◀────────┐ β”‚

β”‚ β”‚ β”‚ (pytest, npm, etc) β”‚ β”‚ β”‚

β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚

β”‚ β”‚ β”‚ β”‚ β”‚

β”‚ β”‚ Pass β”‚ Fail β”‚ β”‚

β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚

β”‚ β”‚ β–Ό β–Ό β”‚ β”‚

β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚

β”‚ β”‚ β”‚ Complete! β”‚ β”‚ Debugger β”‚β”€β”€β”˜ β”‚

β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ (뢄석 & μˆ˜μ •) β”‚ β”‚

β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚

β”‚ β”‚ β”‚ β”‚

β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚

β”‚ β”‚

β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

```

Phase 3: ν…ŒμŠ€νŠΈ μ‹€ν–‰ (μ•ˆμ •ν™” ν›„)

  1. ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬ μžλ™ 탐지
  2. κ΄€λ ¨ ν…ŒμŠ€νŠΈ μ‹€ν–‰
  3. μ‹€νŒ¨ μ‹œ debugger μ—μ΄μ „νŠΈλ‘œ 뢄석
  4. μˆ˜μ • ν›„ λ‹€μ‹œ ν…ŒμŠ€νŠΈ

Phase 4: μ™„λ£Œ

  1. λͺ¨λ“  변경사항 컀밋
  2. 브랜치 push
  3. μ΅œμ’… μƒνƒœ 보고

μ—μ΄μ „νŠΈ 호좜 μ§€μΉ¨

1. task-planner-analyzer μ—μ΄μ „νŠΈ 호좜 (λ§€ 반볡 μ‹œμž‘)

각 반볡 μ‚¬μ΄ν΄μ˜ μ‹œμž‘ μ‹œ Task λ„κ΅¬λ‘œ 호좜:

```

Task tool μ‚¬μš©:

  • subagent_type: "task-planner-analyzer"
  • prompt:

- 이전 code-reviewer의 ν”Όλ“œλ°± (μžˆλŠ” 경우)

- μˆ˜μ •ν•΄μ•Ό ν•  μ΄μŠˆλ“€μ˜ λͺ©λ‘

- μ½”λ“œλ² μ΄μŠ€ ꡬ쑰 뢄석 및 μ œμ•½ 쑰건 νŒŒμ•… μš”μ²­

- ꡬ체적인 μˆ˜μ • κ³„νšκ³Ό todo list 생성 μš”μ²­

```

2. modular-code-architect μ—μ΄μ „νŠΈ 호좜

task-planner-analyzer의 κ³„νšμ— 따라 μˆ˜μ •μ΄ ν•„μš”ν•  λ•Œ Task λ„κ΅¬λ‘œ 호좜:

```

Task tool μ‚¬μš©:

  • subagent_type: "modular-code-architect"
  • prompt:

- task-planner-analyzerκ°€ μƒμ„±ν•œ κ³„νš 포함

- μˆ˜μ •ν•΄μ•Ό ν•  μ΄μŠˆλ“€μ˜ 상세 μ„€λͺ…

- 파일 경둜, 라인 번호, ꡬ체적인 μˆ˜μ • λ°©ν–₯ 포함

```

3. code-reviewer μ—μ΄μ „νŠΈ 호좜

μˆ˜μ • ν›„ κ²€ν† ν•  λ•Œ Task λ„κ΅¬λ‘œ 호좜:

```

Task tool μ‚¬μš©:

  • subagent_type: "code-reviewer"
  • prompt:

- main λΈŒλžœμΉ˜μ™€ 비ꡐ λ˜λŠ” νŠΉμ • 컀밋과 비ꡐ

- ultrathink μˆ˜μ€€μ˜ 심측 뢄석 μš”μ²­

- Critical, Warning, Suggestion κ΅¬λΆ„ν•˜μ—¬ 보고 μš”μ²­

```

4. debugger μ—μ΄μ „νŠΈ 호좜 (ν…ŒμŠ€νŠΈ μ‹€νŒ¨ μ‹œ)

ν…ŒμŠ€νŠΈ μ‹€νŒ¨ 뢄석이 ν•„μš”ν•  λ•Œ Task λ„κ΅¬λ‘œ 호좜:

```

Task tool μ‚¬μš©:

  • subagent_type: "debugger"
  • prompt:

- μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈ 좜λ ₯ 전체 포함

- κ΄€λ ¨ 파일 경둜 λͺ…μ‹œ

- μ—λŸ¬ λ©”μ‹œμ§€μ™€ μŠ€νƒ 트레이슀 포함

- μˆ˜μ • λ°©ν–₯ μ œμ•ˆ μš”μ²­

```

ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬ 탐지

λ‹€μŒ μˆœμ„œλ‘œ ν…ŒμŠ€νŠΈ ν™˜κ²½μ„ μžλ™ νƒμ§€ν•©λ‹ˆλ‹€:

Python ν”„λ‘œμ νŠΈ

```bash

# 탐지 방법

  • pytest.ini, pyproject.toml, setup.cfg 확인
  • tests/ λ˜λŠ” test/ 디렉토리 쑴재 확인

# μ‹€ν–‰ λͺ…λ Ή

pytest -v --tb=short

# λ˜λŠ” νŠΉμ • 파일만

pytest -v path/to/test_file.py

```

JavaScript/TypeScript ν”„λ‘œμ νŠΈ

```bash

# 탐지 방법

  • package.json의 scripts.test 확인
  • jest.config.js, vitest.config.ts 확인

# μ‹€ν–‰ λͺ…λ Ή

npm test

# λ˜λŠ”

yarn test

```

Rust ν”„λ‘œμ νŠΈ

```bash

# 탐지 방법

  • Cargo.toml 확인

# μ‹€ν–‰ λͺ…λ Ή

cargo test

```

Go ν”„λ‘œμ νŠΈ

```bash

# 탐지 방법

  • go.mod 확인
  • *_test.go 파일 쑴재 확인

# μ‹€ν–‰ λͺ…λ Ή

go test ./...

```

Makefile 기반

```bash

# 탐지 방법

  • Makefile에 test νƒ€κ²Ÿ 확인

# μ‹€ν–‰ λͺ…λ Ή

make test

```

μ•ˆμ •ν™” νŒλ‹¨ κΈ°μ€€

λ‹€μŒ 쑰건 쀑 ν•˜λ‚˜λ₯Ό λ§Œμ‘±ν•˜λ©΄ "μ•ˆμ •ν™”"둜 νŒλ‹¨ν•˜κ³  ν…ŒμŠ€νŠΈ μ‹€ν–‰:

  1. Production Ready νŒμ •: code-reviewerκ°€ "production ready" λ˜λŠ” "no critical issues"둜 νŒμ •
  2. 연속 3 λΌμš΄λ“œ 무변경: Critical 이슈 없이 3번의 리뷰 사이클 μ™„λ£Œ
  3. Warning만 λ‚¨μŒ: Critical μ΄μŠˆκ°€ λͺ¨λ‘ ν•΄κ²°λ˜κ³  Warning/Suggestion만 남은 경우

반볡 μ’…λ£Œ 쑰건

λ‹€μŒ 쑰건이 λͺ¨λ‘ 좩쑱되면 λ°˜λ³΅μ„ μ’…λ£Œν•©λ‹ˆλ‹€:

  1. Critical 이슈 μ—†μŒ: code-reviewerκ°€ Critical 이슈λ₯Ό λ³΄κ³ ν•˜μ§€ μ•ŠμŒ
  2. ν…ŒμŠ€νŠΈ 톡과: λͺ¨λ“  κ΄€λ ¨ ν…ŒμŠ€νŠΈκ°€ 톡과
  3. Gradient Flow 정상: (ML μ½”λ“œμ˜ 경우) gradientκ°€ μ˜¬λ°”λ₯΄κ²Œ 흐름
  4. Edge Case 처리 μ™„λ£Œ: λͺ¨λ“  μ—£μ§€ μΌ€μ΄μŠ€κ°€ 처리됨

μ΅œλŒ€ 반볡 횟수

λ¬΄ν•œ 루프 λ°©μ§€λ₯Ό μœ„ν•΄:

  • μ½”λ“œ 리뷰 루프: μ΅œλŒ€ 10회
  • ν…ŒμŠ€νŠΈ μˆ˜μ • 루프: μ΅œλŒ€ 5회
  • 초과 μ‹œ μ‚¬μš©μžμ—κ²Œ ν˜„μž¬ μƒνƒœ 보고 ν›„ μˆ˜λ™ κ°œμž… μš”μ²­

μ‚¬μš© μ˜ˆμ‹œ

μ˜ˆμ‹œ 1: μƒˆ κΈ°λŠ₯ 검증

```

μ‚¬μš©μž: "이 브랜치의 μ½”λ“œλ₯Ό iterative-code-review둜 κ²€μ¦ν•΄μ€˜"

Claude:

  1. git diff main...HEAD둜 변경사항 확인
  2. ν…ŒμŠ€νŠΈ ν™˜κ²½ 탐지 (pytest 발견)
  3. [반볡 μ‹œμž‘] task-planner-analyzer둜 이슈 뢄석 및 μˆ˜μ • κ³„νš 수립
  4. modular-code-architect둜 κ³„νšμ— 따라 μˆ˜μ •
  5. code-reviewer둜 κ²€ν† 
  6. Critical 이슈 발견 μ‹œ β†’ task-planner-analyzer둜 λŒμ•„κ°€μ„œ 반볡 (3회)
  7. Production-ready νŒμ • β†’ ν…ŒμŠ€νŠΈ μ‹€ν–‰
  8. pytest μ‹€νŒ¨ β†’ debugger둜 뢄석 β†’ μˆ˜μ •
  9. pytest 톡과 β†’ μ™„λ£Œ!

```

μ˜ˆμ‹œ 2: ML λͺ¨λΈ μˆ˜μ • 검증

```

μ‚¬μš©μž: "/iterative-code-review models/trm_titans.py"

Claude:

  1. ν•΄λ‹Ή 파일 뢄석
  2. [반볡 1] task-planner-analyzer둜 κ°œμ„  κ³„νš 수립
  3. modular-code-architect둜 κ°œμ„ μ  κ΅¬ν˜„
  4. code-reviewer둜 검증 (gradient flow νŠΉλ³„ 주의)
  5. [반볡 2-4] Critical μ΄μŠˆμ— λŒ€ν•΄ κ³„νšβ†’μˆ˜μ •β†’κ²€ν†  반볡
  6. 4회 반볡 ν›„ μ•ˆμ •ν™” β†’ ν…ŒμŠ€νŠΈ μ‹€ν–‰
  7. μ™„λ£Œ 보고

```

μ˜ˆμ‹œ 3: ν…ŒμŠ€νŠΈ μ‹€νŒ¨ 처리

```

μ½”λ“œ 리뷰 μ™„λ£Œ ν›„:

  1. pytest -v μ‹€ν–‰
  2. test_memory_update FAILED 발견
  3. debugger μ—μ΄μ „νŠΈ 호좜:

- μ—λŸ¬: "AssertionError: gradient is None"

- 뢄석: create_graph=False둜 μΈν•œ 문제

  1. task-planner-analyzer둜 μˆ˜μ • κ³„νš 수립
  2. modular-code-architect둜 μˆ˜μ •
  3. pytest μž¬μ‹€ν–‰ β†’ 톡과
  4. μ™„λ£Œ!

```

Best Practices

  1. Todo 리슀트 ν™œμš©: TodoWrite λ„κ΅¬λ‘œ μ§„ν–‰ 상황 좔적
  2. 컀밋 뢄리: 각 μˆ˜μ • μ‚¬μ΄ν΄λ§ˆλ‹€ 의미 μžˆλŠ” 컀밋 생성
  3. 점진적 κ°œμ„ : ν•œ λ²ˆμ— λͺ¨λ“  것을 μˆ˜μ •ν•˜μ§€ μ•Šκ³  λ‹¨κ³„μ μœΌλ‘œ μ§„ν–‰
  4. λ¬Έμ„œν™”: μˆ˜μ • μ΄μœ μ™€ κ²°μ • 사항을 컀밋 λ©”μ‹œμ§€μ— 기둝
  5. ν…ŒμŠ€νŠΈ μš°μ„ : κ°€λŠ₯ν•˜λ©΄ μˆ˜μ • μ „ μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈ λ¨Όμ € 확인

μ£Όμ˜μ‚¬ν•­

  • main λΈŒλžœμΉ˜μ— 직접 λ¨Έμ§€ν•˜μ§€ μ•ŠμŒ (별도 μ§€μ‹œκ°€ μ—†λŠ” ν•œ)
  • 파괴적 git λͺ…λ Ήμ–΄ μ‚¬μš© κΈˆμ§€ (force push, hard reset λ“±)
  • ν…ŒμŠ€νŠΈ μ‹€ν–‰ μ‹œ 전체 ν…ŒμŠ€νŠΈ λŒ€μ‹  κ΄€λ ¨ ν…ŒμŠ€νŠΈλ§Œ μ‹€ν–‰ ꢌμž₯ (μ‹œκ°„ μ ˆμ•½)
  • ν…ŒμŠ€νŠΈκ°€ μ—†λŠ” ν”„λ‘œμ νŠΈμ˜ 경우 code-reviewer νŒμ •λ§ŒμœΌλ‘œ μ™„λ£Œ κ°€λŠ₯
  • ML ν•™μŠ΅ ν…ŒμŠ€νŠΈλŠ” μ‹œκ°„μ΄ 였래 걸릴 수 μžˆμœΌλ―€λ‘œ 짧은 smoke test ꢌμž₯