-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
117 lines (100 loc) · 5.4 KB
/
.coderabbit.yaml
File metadata and controls
117 lines (100 loc) · 5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
# CodeRabbit Configuration
# https://docs.coderabbit.ai/guides/configure-coderabbit
language: "ko-KR"
tone_instructions: |
시니어 프론트엔드 개발자 관점에서 리뷰해주세요.
문제점을 지적할 때는 이유와 함께 구체적인 개선 방법을 제시해주세요.
칭찬할 만한 코드 패턴이 있다면 언급해주세요.
[코멘트 양]
- PR당 인라인 코멘트 수를 적게 유지하세요. 사소한 지적은 남기지 마세요.
- 남기지 말 것: 네이밍 취향, 이미 ESLint/Prettier가 잡는 수준, “있으면 좋은” 수준의
useMemo/useCallback/React.memo, Tailwind 클래스 취향, 반환 타입 미표기 등
팀 생산성에 거의 영향 없는 제안.
- 남길 것: 버그·회귀 가능성, 보안, 명백한 성능/접근성 장애, FSD 등 아키텍처 위반,
잘못된 API/에러 처리처럼 머지 후 비용이 큰 문제.
reviews:
# assertive 대비 코멘트 수가 확 줄됩니다. 톤 지침으로 중요 이슈만 추가 필터링합니다.
profile: "chill"
request_changes_workflow: false
auto_review:
enabled: true
drafts: false
base_branches:
- "main"
- "develop"
- "dev"
poem: false
collapse_walkthrough: true
sequence_diagrams: false
path_instructions:
# FSD 아키텍처 레이어별 리뷰 지침 (위반·누락이 실제로 문제될 때만 코멘트)
- path: "src/app/**"
instructions: |
app 레이어입니다. 다음을 확인해주세요:
- 전역 Provider 설정이 올바른지 (React Query, Router 등)
- 전역 스타일 및 폰트 설정
- main.tsx의 StrictMode 사용 여부
- 라우팅 구조가 lazy loading을 활용하는지 확인
- path: "src/pages/**"
instructions: |
pages 레이어입니다. 다음을 확인해주세요:
- 페이지 컴포넌트가 비즈니스 로직 없이 조합(Composition)만 하는지
- React.lazy / Suspense를 통한 코드 스플리팅 적용 여부
- 페이지 단위 SEO 메타데이터 처리
- 하위 레이어(widgets, features, entities, shared)만 import하는지 (상위 레이어 import 금지)
- path: "src/features/**"
instructions: |
features 레이어입니다. 다음을 확인해주세요:
- 단일 책임 원칙: 하나의 feature는 하나의 기능만 담당하는지
- entities, shared 레이어만 import하는지
- Public API(index.ts)를 통해서만 외부에 노출하는지
- 비즈니스 로직이 UI 컴포넌트와 분리되어 있는지
- path: "src/entities/**"
instructions: |
entities 레이어입니다. 다음을 확인해주세요:
- 도메인 모델(타입/인터페이스) 정의가 명확한지
- shared 레이어만 import하는지
- 비즈니스 규칙과 무관한 순수 도메인 로직인지
- path: "src/shared/**"
instructions: |
shared 레이어입니다. 다음을 확인해주세요:
- 다른 레이어를 import하지 않는지 (완전한 독립성)
- UI 컴포넌트의 재사용성과 범용성
- API 설정, 유틸 함수의 순수성(side-effect 없음)
- 환경변수(import.meta.env) 직접 접근 대신 추상화 레이어 사용 여부
- path: "**/*.tsx"
instructions: |
위 레이어 지침을 우선합니다. 여기서는 “중요한 것만” 보완하세요.
- 성능: 리스트 key 오용, 눈에 띄는 불필요 리렌더/무거운 작업 같은 실질 이슈만.
- a11y: 서비스를 막는 수준(의미 있는 버튼/폼/이미지, 키보드 트랩 등)만.
- any 남용·위험한 패턴은 지적. Tailwind/합성 패턴 등 미세한 스타일은 생략.
- path: "**/*.ts"
instructions: |
타입·훅은 린트가 잡는 수준(반환 타입 생략, deps 등)은 코멘트하지 마세요.
any 남용, 잘못된 단언으로 인한 런타임 위험, useEffect 클린업 누락으로 인한
누수/동시성 버그, 보안(XSS, 시크릿 노출, 평문 저장)만 지적하세요.
# API 레이어
- path: "src/shared/api/**"
instructions: |
API 레이어를 리뷰합니다. 다음을 확인해주세요:
- 에러 처리: try/catch 누락 또는 에러를 그냥 삼키는 경우
- axios interceptor를 통한 공통 에러 처리 여부
- API 응답 타입이 명확히 정의되어 있는지
- 토큰 갱신(refresh) 로직의 race condition 처리
- API 함수가 부수효과(store 업데이트 등) 없이 순수하게 유지되는지
- 민감한 데이터가 URL 파라미터로 노출되지 않는지
# Zustand 스토어
- path: "src/shared/stores/**"
instructions: |
Zustand 스토어를 리뷰합니다. 다음을 확인해주세요:
- 스토어가 전역 상태가 필요한 데이터만 관리하는지 (로컬 상태는 useState 사용)
- selector를 활용한 불필요한 리렌더링 방지
- 민감 정보(accessToken 등)가 스토어에서 어떻게 관리되는지
- persist 미들웨어 사용 시 민감 데이터 제외 여부 (partialize)
- 스토어 액션이 명확하게 네이밍되었는지
finishing_touches:
docstrings:
enabled: false
chat:
auto_reply: true