Initial commit
This commit is contained in:
140
skills/code-style-reviewer/SKILL.md
Normal file
140
skills/code-style-reviewer/SKILL.md
Normal file
@@ -0,0 +1,140 @@
|
||||
---
|
||||
name: code-style-reviewer
|
||||
description: 코드 스타일 원칙 기반 리뷰 - 단일책임원칙(SRP), DRY(Don't Repeat Yourself), 단순화 우선, YAGNI(You Aren't Gonna Need It), 타입 안전성을 검사합니다. 코드 구조와 명명규칙도 함께 평가합니다. 코드 리뷰가 필요할 때 자동으로 사용됩니다.
|
||||
allowed-tools: Read, Grep, Glob
|
||||
---
|
||||
|
||||
# Code Style Reviewer
|
||||
|
||||
코드 스타일 원칙에 따른 전문적인 코드 리뷰를 제공하는 Skill입니다. Claude가 직접 코드를 분석하여 5가지 핵심 원칙을 중심으로 상세한 리포트를 생성합니다.
|
||||
|
||||
## 검사 원칙
|
||||
|
||||
### 1. 단일책임원칙 (Single Responsibility Principle)
|
||||
클래스, 함수, 모듈은 하나의 책임만 가져야 합니다. 복잡한 함수는 여러 작은 함수로 분리되어야 합니다.
|
||||
|
||||
### 2. DRY (Don't Repeat Yourself)
|
||||
같은 로직이 반복되면 안 됩니다. 공통 로직은 별도의 함수나 유틸리티로 추출해야 합니다.
|
||||
|
||||
### 3. 단순화 우선
|
||||
복잡한 추상화보다는 이해하기 쉬운 단순한 코드를 우선합니다. 과도한 설계는 피합니다.
|
||||
|
||||
### 4. YAGNI (You Aren't Gonna Need It)
|
||||
현재 필요하지 않은 기능은 추가하지 않습니다. 미래를 대비한 불필요한 코드는 제거해야 합니다.
|
||||
|
||||
### 5. 타입 안전성
|
||||
`any` 타입 사용을 최소화합니다. TypeScript를 사용할 때는 명확한 타입을 정의해야 합니다.
|
||||
|
||||
## Instructions
|
||||
|
||||
### 리뷰 프로세스
|
||||
|
||||
1. **대상 파일 파악**
|
||||
- 검토할 코드 파일을 Read 도구로 읽습니다
|
||||
- 파일 구조와 전체 범위를 파악합니다
|
||||
|
||||
2. **원칙별 분석**
|
||||
- 각 파일에 대해 5가지 원칙을 체계적으로 검토합니다
|
||||
- Grep을 사용하여 반복되는 패턴을 찾습니다
|
||||
- 명명규칙의 일관성을 확인합니다
|
||||
|
||||
3. **상세 리포트 생성**
|
||||
- 파일별로 구분된 리포트를 작성합니다
|
||||
- 각 문제점에 대해 구체적인 개선 방안을 제시합니다
|
||||
- 우선순위를 표시합니다:
|
||||
- **Critical**: 반드시 수정해야 함
|
||||
- **Warning**: 개선이 필요함
|
||||
- **Suggestion**: 고려해볼 만함
|
||||
|
||||
4. **코드 예시 제공**
|
||||
- 각 문제에 대해 "문제 코드" vs "개선 코드" 예시를 제시합니다
|
||||
- 변경의 이유를 명확히 설명합니다
|
||||
|
||||
## 리뷰 체크리스트
|
||||
|
||||
### 단일책임원칙 검사
|
||||
- [ ] 함수가 하나의 작업만 수행하는가?
|
||||
- [ ] 클래스가 하나의 책임만 가지는가?
|
||||
- [ ] 복잡한 로직이 작은 함수로 분리되어 있는가?
|
||||
- [ ] 함수의 길이가 적절한가? (권장: 20줄 이하)
|
||||
|
||||
### DRY 검사
|
||||
- [ ] 반복되는 코드가 있는가?
|
||||
- [ ] 공통 로직이 추출되었는가?
|
||||
- [ ] 설정 값이 하드코딩되지 않았는가?
|
||||
- [ ] 유사한 구조의 코드가 통합될 수 있는가?
|
||||
|
||||
### 단순화 우선 검사
|
||||
- [ ] 불필요한 추상화가 있는가?
|
||||
- [ ] 복잡한 문법 대신 단순한 표현을 사용했는가?
|
||||
- [ ] 깊은 중첩 구조가 있는가? (권장: 3단계 이내)
|
||||
- [ ] 과도하게 우아한(overly clever) 코드가 있는가?
|
||||
|
||||
### YAGNI 검사
|
||||
- [ ] 사용되지 않는 코드가 있는가?
|
||||
- [ ] 미래를 대비한 불필요한 기능이 있는가?
|
||||
- [ ] 제거할 수 있는 매개변수가 있는가?
|
||||
- [ ] 죽은(dead) 코드나 주석이 있는가?
|
||||
|
||||
### 타입 안전성 검사 (TypeScript)
|
||||
- [ ] `any` 타입이 사용되었는가?
|
||||
- [ ] 모든 함수의 매개변수에 타입이 정의되었는가?
|
||||
- [ ] 반환 타입이 명시적인가?
|
||||
- [ ] `interface`와 `type`을 적절히 사용했는가?
|
||||
|
||||
### 명명규칙 검사
|
||||
- [ ] 변수명이 명확하고 의미있는가?
|
||||
- [ ] 함수명이 동사로 시작하는가?
|
||||
- [ ] 클래스명이 명사이고 PascalCase인가?
|
||||
- [ ] 상수가 UPPER_SNAKE_CASE인가?
|
||||
- [ ] 명명규칙이 일관성 있는가?
|
||||
|
||||
## 예시
|
||||
|
||||
자세한 예시와 패턴은 [EXAMPLES.md](EXAMPLES.md) 참고
|
||||
상세한 원칙 설명은 [PRINCIPLES.md](PRINCIPLES.md) 참고
|
||||
|
||||
## 리뷰 출력 형식
|
||||
|
||||
```
|
||||
# Code Style Review Report
|
||||
|
||||
## 📄 파일: [filename]
|
||||
|
||||
### ✅ 좋은 점
|
||||
- [좋은 사례들]
|
||||
|
||||
### ⚠️ Critical Issues
|
||||
**문제 1: [제목]**
|
||||
- 위치: [라인 또는 함수명]
|
||||
- 원칙: [해당 원칙]
|
||||
- 설명: [상세 설명]
|
||||
- 개선 방법:
|
||||
```
|
||||
// Before
|
||||
[현재 코드]
|
||||
|
||||
// After
|
||||
[개선된 코드]
|
||||
```
|
||||
|
||||
### 📢 Warnings
|
||||
[경고 수준 문제들]
|
||||
|
||||
### 💡 Suggestions
|
||||
[제안 수준의 개선 사항들]
|
||||
|
||||
## 📊 종합 평가
|
||||
- 전체 코드 품질 점수: [X/10]
|
||||
- 가장 중요한 개선 사항: [상위 3개]
|
||||
```
|
||||
|
||||
## 사용 시나리오
|
||||
|
||||
이 Skill은 다음 상황에 자동으로 활용됩니다:
|
||||
|
||||
- 코드 리뷰 요청 시
|
||||
- 코드 품질 분석 요청 시
|
||||
- 코드 구조 개선 조언 필요 시
|
||||
- 새로운 파일의 스타일 검사 시
|
||||
- 기존 코드의 리팩토링 제안 시
|
||||
Reference in New Issue
Block a user