-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
118 lines (102 loc) · 4.34 KB
/
.coderabbit.yaml
File metadata and controls
118 lines (102 loc) · 4.34 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
118
language: "ko-KR"
early_access: false
reviews:
profile: "chill"
request_changes_workflow: false
high_level_summary: true
poem: true
review_status: true
collapse_walkthrough: false
auto_review:
enabled: true
drafts: false
path_filters:
- "!**/dist/**"
- "!**/node_modules/**"
- "!**/src/shared/assets/**"
- "!**/pnpm-lock.yaml"
- "!**/.next/**"
- "!**/package-lock.json"
path_instructions:
- path: "**/src/**/components/**/*.tsx"
instructions: |
컴포넌트 파일 리뷰 시:
- 접근성 준수
- 성능 최적화
- path: "**/*.stories.tsx"
instructions: |
Storybook 스토리 리뷰 시:
- 모든 props 변형에 대한 스토리가 작성되었는지
- path: "**/src/**/*.css.ts"
instructions: |
스타일(Vanilla Extract) 파일 리뷰 시:
- 디자인 토큰 활용 확인
- recipe와 variant 적절한 사용
- 반응형 스타일 구현 방식
- 불필요한 중복 스타일 존재 여부
- path: "**/src/**/hooks/**/*.ts"
instructions: |
커스텀 훅 리뷰 시:
- 파일명/함수명은 use* 접두사 사용
- 에러/로딩 상태 명확하게
- 제네릭 훅은 타입 매개변수 기본값 검토
- TanStack Query 훅 네이밍: use + 행위 + 대상 + Query/Mutation (ex. useGetUserListQuery)
- path: "**/src/shared/components/**"
instructions: |
공통 컴포넌트 리뷰 시:
- TypeScript 타입 정의의 정확성과 제네릭 활용
- 높은 재사용성을 위한 props 설계
- 일관된 API 디자인과 명명 규칙
- 도메인, 페이지, 특정 피처 의존성 최소화(결합도 낮게 유지)
- 외부 라이브러리 의존성 추가 시 근거와 대체 가능성 검토(교체 용이성)
- 사이드 이펙트/전역 상태 접근 최소화, 필요한 경우 인터페이스로 주입
- path: "**/src/pages/**/components/**"
instructions: |
페이지별 컴포넌트 리뷰 시:
- 해당 페이지의 도메인 로직과 긴밀한 결합 확인
- 재사용 가능한 컴포넌트는 shared로 이동 제안
- 페이지 특화 타입과 상수의 적절한 활용 확인
- path: "**/src/**/apis/**"
instructions: |
API 리뷰 시:
- TanStack Query와의 통합(QueryKey Factory 사용)
- 타입 안정성 확보(응답 제네릭, 불변 데이터)
- HTTP메서드 + 명사 네이밍 규칙 확인 (getUserList, postComment 등)
- async/await 패턴 일관성 확인
- path: "**/src/routes/**"
instructions: |
라우팅 리뷰 시:
- 코드 스플리팅(dynamic import)과 적절한 청크 분리
- 라우트 전환 시 상태 보존 전략 검토
- 중첩 라우트의 레이아웃/에러 경계 사용 확인
- path: "**/src/**/constants/**"
instructions: |
상수 파일 리뷰 시:
- 모든 상수가 BIG_SNAKE_CASE로 작성되었는지 확인
- export const 사용 확인
- 의미있는 이름 사용 여부 확인
- 리터럴은 as const로 타입 좁히기
- path: "**/src/**"
instructions: |
공통 코드 리뷰 시:
# 기본 규칙
- 모든 컴포넌트는 반드시 TypeScript로 작성
- 스타일은 반드시 Vanilla Extract(.css.ts)로 작성
- 절대 경로 임포트 사용
- index를 key로 사용하지 않기
- var 사용 금지
# 네이밍 컨벤션
- 폴더명, 파일명은 kebab-case 사용
- 컴포넌트와 클래스는 PascalCase 사용
- 변수와 함수는 camelCase 사용
- 상수는 BIG_SNAKE_CASE 사용
- Props 타입은 컴포넌트명 + Props 형식
- API Response 타입은 XXXResponse 형식
- 함수 네이밍에 get/create/check/handle/is/has/can 접두사 활용
- TanStack Query 훅: use + 행위 + 대상 + Query/Mutation (ex. useGetUserListQuery)
# 보안/성능
- 환경 변수 사용(API 키나 시크릿을 하드코딩 X)
- React.memo, useMemo, useCallback의 적절한 사용
chat:
auto_reply: true
tone_instructions: "친절하지만 간결하게, 실질적인 개선 위주로. 재사용성과 유지보수성을 우선."