Prompt file imported from YawnsDuzin/investment-advisor (
.claude/commands/git-review.md). Copyright stays with the author.
Git Review Skill
현재 브랜치의 변경 사항을 main 브랜치 대비 분석하여 구조화된 코드 리뷰를 제공합니다.
실행 단계
Step 1: 변경 사항 수집
아래 세 가지 명령을 실행하여 변경 내용을 파악합니다:
# 1. 커밋 히스토리 확인
git log main..HEAD --oneline
# 2. 변경 파일 목록 및 통계
git diff --stat main...HEAD
# 3. 전체 diff 수집
git diff main...HEAD
diff 출력이 너무 길 경우, 파일별로 나누어 수집합니다:
git diff main...HEAD -- <파일경로>
Step 2: 리뷰 분석
각 변경 파일에 대해 다음 4가지 관점으로 분석합니다:
| 관점 | 확인 항목 |
|---|---|
| 코드 품질 / 가독성 | 네이밍 일관성, 중복 코드, 불필요한 복잡도, MVVM 패턴 준수 |
| 잠재적 버그 | Null 참조, 비동기 오류 처리, ConfigureAwait 누락, EF Core LINQ 계산 프로퍼티 오용 |
| 성능 | 불필요한 DB 조회, N+1 쿼리, 대용량 메모리 사용, 동기 블로킹 |
| 보안 | 민감 정보 노출, SQL 인젝션, 암호화 누락, 권한 검증 부재 |
Step 3: 리뷰 출력
아래 형식으로 한국어 리뷰를 출력합니다.
출력 형식
## 코드 리뷰: {브랜치명} vs main
**커밋 목록**
- {커밋 해시} {커밋 메시지}
- ...
**변경 파일 요약**
- 변경: N개 파일, +추가 줄 / -삭제 줄
---
### 📁 {파일 경로}
#### 코드 품질 / 가독성
- ✅ {잘된 점} 또는 💡 {개선 제안}
- ...
#### 잠재적 버그
- ⚠️ {라인 번호 또는 메서드명}: {문제 설명}
```csharp
// 문제 코드
제안: {수정 방법}
- ...
성능
- {이슈 없으면 "특이사항 없음"}
보안
- {이슈 없으면 "특이사항 없음"}
(다음 파일...)
전체 요약
| 구분 | 내용 |
|---|---|
| 전체 평가 | {한 줄 요약} |
| 심각도 높음 | {건수} 건 |
| 개선 권장 | {건수} 건 |
개선 제안 우선순위
- [높음] {가장 중요한 개선 사항}
- [중간] {다음 개선 사항}
- [낮음] {선택적 개선 사항}
---
## ProSafe 프로젝트 특화 체크리스트
리뷰 시 아래 ProSafe 프로젝트 규칙도 함께 확인합니다:
- [ ] `await` 사용 시 `ConfigureAwait(false)` 적용 여부 (라이브러리/서비스 레이어)
- [ ] EF Core LINQ에서 계산 프로퍼티(`Status` 등) 대신 DB 컬럼(`WorkStatus`) 직접 사용 여부
- [ ] 민감 데이터(`w_name`, `ip`, `password` 등) 암호화 처리 여부
- [ ] `BaseService.ExecuteAsync()` 패턴 준수 여부
- [ ] Repository 인터페이스를 통한 접근 여부 (Direct DB 접근 금지)
- [ ] 비동기 메서드에 `CancellationToken` 전달 여부
- [ ] 소스코드 인코딩 UTF-8 with BOM 유지 여부
---
## 주의사항
- 변경 없는 파일은 리뷰에서 생략합니다.
- 이진 파일(이미지, DLL 등)은 내용 분석을 건너뜁니다.
- 삭제된 코드는 제거 이유가 명확하면 별도 언급하지 않습니다.
- 레거시 프로젝트(`ItlogLib*`, `ProSafe.Data.MsSqlServer` 등)의 변경은 리뷰 대상에서 제외합니다.
