--- name: work-code-reviewer description: | 현재 브랜치 변경 코드 또는 특정 파일을 받아 팀 공통 지침 기준으로 종합 리뷰를 수행합니다. 컨벤션, 로직, 보안, 성능, 접근성을 통합 검토하고 우선순위별 리포트를 생성합니다. 다음 상황에서 반드시 사용하세요: - "변경된 코드 리뷰해줘", "이 파일 코드 리뷰해줘" - PR 올리기 전 셀프 리뷰가 필요할 때 - 특정 파일의 전반적인 품질을 점검할 때 --- # 코드 리뷰어 (work-code-reviewer) 변경 코드 / 파일 → 컨벤션 · 로직 · 보안 · 성능 통합 리뷰 → 우선순위별 리포트. ## 언제 사용하는가 - MR 올리기 전 셀프 리뷰 / 사전 점검 - 특정 파일의 전반적인 코드 품질 검토 - 리뷰 요청 전 자가 진단 ## 입력 - `git diff` 출력, 파일 경로 목록, 또는 코드 스니펫 - (선택) 리뷰 초점 (컨벤션 / 로직 / 보안 / 전체) --- ## 작업 순서 ### Phase 1: 검토 범위 파악 1. 대상 파일 또는 diff를 읽는다. 2. 파일 유형별로 적용할 검토 항목을 결정한다. - `.vue` → 컨벤션 + 컴포넌트 구조 + 접근성 - `.ts` → 타입 안전성 + 로직 - `server/` → 보안 + 에러 핸들링 - `stores/` → 상태 관리 패턴 - `composables/` → 부수효과 최소화 ### Phase 2: 통합 체크리스트 #### 코드 품질 - [ ] 함수/파일 단일 책임 원칙 - [ ] 중복 코드 없음 (재사용 가능 composable/유틸 추출 여부) - [ ] 매직 넘버/문자열 → 상수 또는 i18n 키 - [ ] 불필요한 `console.log` 제거 #### 타입 안전성 - [ ] `any` 타입 미사용 - [ ] 외부 API 응답 타입 정의 - [ ] 함수 파라미터/반환 타입 명시 #### 에러 핸들링 - [ ] API 호출 try-catch 또는 onError 처리 - [ ] 에러 상태 UI 존재 여부 - [ ] 엣지 케이스 (null, undefined, 빈 배열) 처리 #### 성능 - [ ] 불필요한 watch / watchEffect 없음 - [ ] computed 캐싱 활용 - [ ] 과도한 reactive 래핑 없음 #### 보안 - [ ] `v-html` 입력 새니타이징 - [ ] 민감 정보 하드코딩 없음 - [ ] 클라이언트 노출 불필요한 데이터 없음 #### Vue 컨벤션 (`.vue` 파일) `verify-component-review` 스킬의 체크리스트 전체 적용. ### Phase 3: 리뷰 코멘트 작성 `work-mr-reviewer`의 코멘트 형식과 동일: - 🚨 Critical / ⚠️ Warning / 💡 Nit 3단계 분류 - 파일명:라인번호 명시 - 수정 코드 예시 포함 ### Phase 4: 요약 개선 전/후 예상 품질 변화를 간단히 서술한다. --- ## 출력 형식 ``` ## 코드 리뷰: <파일명 또는 기능명> ### 검토 요약 - 파일: N개 - 주요 이슈: [컨벤션 | 로직 | 보안 | 성능] ### 🚨 Critical (N건) [파일:라인] 문제 + 수정 코드 ### ⚠️ Warning (N건) [파일:라인] 문제 + 수정 방향 ### 💡 Nit (N건) [목록] ### ✅ 잘된 점 [1~3개] ### 개선 후 기대 효과 [한 줄 요약] ```