codesyncer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/LICENSE +31 -0
  2. package/README.ko.md +417 -0
  3. package/README.md +417 -0
  4. package/bin/codesyncer.js +3 -0
  5. package/dist/commands/add-repo.d.ts +3 -0
  6. package/dist/commands/add-repo.d.ts.map +1 -0
  7. package/dist/commands/add-repo.js +145 -0
  8. package/dist/commands/add-repo.js.map +1 -0
  9. package/dist/commands/init.d.ts +3 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +489 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/update.d.ts +3 -0
  14. package/dist/commands/update.d.ts.map +1 -0
  15. package/dist/commands/update.js +123 -0
  16. package/dist/commands/update.js.map +1 -0
  17. package/dist/constants/keywords.d.ts +23 -0
  18. package/dist/constants/keywords.d.ts.map +1 -0
  19. package/dist/constants/keywords.js +133 -0
  20. package/dist/constants/keywords.js.map +1 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +52 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/templates/en/architecture.md +147 -0
  26. package/dist/templates/en/claude.md +267 -0
  27. package/dist/templates/en/comment_guide.md +324 -0
  28. package/dist/templates/en/decisions.md +227 -0
  29. package/dist/templates/en/master.md +179 -0
  30. package/dist/templates/ko/architecture.md +147 -0
  31. package/dist/templates/ko/claude.md +267 -0
  32. package/dist/templates/ko/comment_guide.md +324 -0
  33. package/dist/templates/ko/decisions.md +227 -0
  34. package/dist/templates/ko/master.md +179 -0
  35. package/dist/types.d.ts +78 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +16 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils/messages.d.ts +129 -0
  40. package/dist/utils/messages.d.ts.map +1 -0
  41. package/dist/utils/messages.js +168 -0
  42. package/dist/utils/messages.js.map +1 -0
  43. package/dist/utils/scanner.d.ts +11 -0
  44. package/dist/utils/scanner.d.ts.map +1 -0
  45. package/dist/utils/scanner.js +311 -0
  46. package/dist/utils/scanner.js.map +1 -0
  47. package/dist/utils/template-loader.d.ts +18 -0
  48. package/dist/utils/template-loader.d.ts.map +1 -0
  49. package/dist/utils/template-loader.js +496 -0
  50. package/dist/utils/template-loader.js.map +1 -0
  51. package/package.json +70 -0
  52. package/src/templates/en/architecture.md +147 -0
  53. package/src/templates/en/claude.md +267 -0
  54. package/src/templates/en/comment_guide.md +324 -0
  55. package/src/templates/en/decisions.md +227 -0
  56. package/src/templates/en/master.md +179 -0
  57. package/src/templates/ko/architecture.md +147 -0
  58. package/src/templates/ko/claude.md +267 -0
  59. package/src/templates/ko/comment_guide.md +324 -0
  60. package/src/templates/ko/decisions.md +227 -0
  61. package/src/templates/ko/master.md +179 -0
@@ -0,0 +1,324 @@
1
+ # 주석 작성 가이드
2
+
3
+ > **CodeSyncer 주석 시스템** - 모든 추론과 결정을 영구 기록
4
+
5
+ ---
6
+
7
+ ## 📋 주석 태그 레퍼런스
8
+
9
+ ### 5가지 필수 태그
10
+
11
+ | 태그 | 용도 | 사용 시점 | 중요도 |
12
+ |------|------|-----------|--------|
13
+ | `@codesyncer-rule` | 특별 규칙 | 일반적이지 않은 구현 방식 | ⭐⭐⭐ |
14
+ | `@codesyncer-inference` | 추론 내용 | AI가 추론한 내용과 근거 | ⭐⭐⭐⭐⭐ |
15
+ | `@codesyncer-decision` | 결정 사항 | 의논 후 결정된 내용 | ⭐⭐⭐⭐⭐ |
16
+ | `@codesyncer-todo` | TODO | 사용자 확인 필요 | ⭐⭐⭐⭐ |
17
+ | `@codesyncer-context` | 비즈니스 맥락 | 도메인 지식, 배경 설명 | ⭐⭐⭐ |
18
+
19
+ ### 레거시 호환
20
+
21
+ 기존 `@claude-*` 태그도 완전히 호환됩니다:
22
+ ```typescript
23
+ @claude-rule = @codesyncer-rule
24
+ @claude-inference = @codesyncer-inference
25
+ @claude-decision = @codesyncer-decision
26
+ @claude-todo = @codesyncer-todo
27
+ @claude-context = @codesyncer-context
28
+ ```
29
+
30
+ ---
31
+
32
+ ## 📝 주석 레벨
33
+
34
+ ### 1. 📄 파일 레벨 (JSDoc)
35
+
36
+ **언제**: 파일 최상단, 모듈 전체 설명
37
+
38
+ ```typescript
39
+ /**
40
+ * User authentication service
41
+ *
42
+ * @codesyncer-context JWT 기반 인증 시스템
43
+ * @codesyncer-rule 토큰은 httpOnly 쿠키에 저장 (XSS 방지)
44
+ * @author CodeSyncer
45
+ * @date 2024-10-17
46
+ */
47
+ ```
48
+
49
+ ### 2. 🔧 함수/클래스/컴포넌트 레벨
50
+
51
+ **언제**: 각 함수, 클래스, 컴포넌트 정의 위
52
+
53
+ ```tsx
54
+ /**
55
+ * 주문 생성 폼
56
+ *
57
+ * @codesyncer-context 6단계 주문 프로세스
58
+ * @codesyncer-inference 각 단계마다 자동 저장 (일반적인 UX 패턴)
59
+ * @codesyncer-decision [2024-10-15] Zustand로 상태 관리 (복잡한 폼 상태)
60
+ */
61
+ export default function OrderForm() {
62
+ // ...
63
+ }
64
+ ```
65
+
66
+ ### 3. 📝 인라인 레벨
67
+
68
+ **언제**: 코드 라인 위 또는 옆
69
+
70
+ ```typescript
71
+ // @codesyncer-inference: 페이지 크기 20 (일반적인 테이블 UX)
72
+ const PAGE_SIZE = 20;
73
+
74
+ // @codesyncer-todo: mainApi 엔드포인트 URL 확인 필요
75
+ const API_URL = '/api/temp';
76
+
77
+ // @codesyncer-decision: [2024-10-17] Soft Delete (30일 복구 가능)
78
+ async function deleteUser(id: string) {
79
+ // @codesyncer-inference: deleted_at 플래그 사용 (복구 기능용)
80
+ return db.update(id, { deleted_at: new Date() });
81
+ }
82
+
83
+ const maxRetry = 3; // @codesyncer-inference: 3회 재시도 (안정성)
84
+ ```
85
+
86
+ ---
87
+
88
+ ## ✅ 좋은 주석 예시
89
+
90
+ ### 예시 1: 비즈니스 로직
91
+
92
+ ```tsx
93
+ /**
94
+ * 배송비 계산 함수
95
+ *
96
+ * @codesyncer-context 배송비 정책
97
+ * - 3만원 이상: 무료 배송
98
+ * - 3만원 미만: 3,000원
99
+ * - 제주/도서산간: +3,000원
100
+ *
101
+ * @codesyncer-decision [2024-10-10] 정책 확정 (마케팅팀 협의)
102
+ * @codesyncer-rule 정책 변경 시 반드시 마케팅팀 승인 필요
103
+ */
104
+ function calculateShippingFee(orderAmount: number, region: string): number {
105
+ // @codesyncer-inference: 3만원 기준 (업계 표준)
106
+ const FREE_SHIPPING_THRESHOLD = 30000;
107
+
108
+ // @codesyncer-decision: [2024-10-10] 기본 배송비 3,000원
109
+ const BASIC_FEE = 3000;
110
+
111
+ // @codesyncer-todo: 제주/도서산간 지역 목록 확인 필요
112
+ const EXTRA_FEE_REGIONS = ['제주', '울릉도'];
113
+
114
+ if (orderAmount >= FREE_SHIPPING_THRESHOLD) {
115
+ return 0;
116
+ }
117
+
118
+ const baseFee = BASIC_FEE;
119
+ const extraFee = EXTRA_FEE_REGIONS.includes(region) ? 3000 : 0;
120
+
121
+ return baseFee + extraFee;
122
+ }
123
+ ```
124
+
125
+ ### 예시 2: 데이터 구조
126
+
127
+ ```tsx
128
+ /**
129
+ * 사용자 인터페이스
130
+ *
131
+ * @codesyncer-context GDPR 준수 필요
132
+ * @codesyncer-rule 개인정보는 암호화 저장
133
+ */
134
+ interface User {
135
+ id: string;
136
+
137
+ // @codesyncer-inference: email을 username으로 사용 (일반적 패턴)
138
+ email: string;
139
+
140
+ // @codesyncer-decision: [2024-10-12] bcrypt 해싱 (보안팀 권고)
141
+ passwordHash: string;
142
+
143
+ // @codesyncer-context: Soft Delete용
144
+ // @codesyncer-decision: [2024-10-15] 30일 후 완전 삭제 (GDPR)
145
+ deletedAt?: Date;
146
+
147
+ createdAt: Date;
148
+ updatedAt: Date;
149
+ }
150
+ ```
151
+
152
+ ### 예시 3: 컴포넌트
153
+
154
+ ```tsx
155
+ /**
156
+ * 주문 목록 테이블 컴포넌트
157
+ *
158
+ * @codesyncer-context 고객용 주문 내역 조회
159
+ * @codesyncer-inference 페이지네이션 필요 (대량 데이터)
160
+ * @codesyncer-decision [2024-10-16] TanStack Table 사용 (성능)
161
+ */
162
+ export function OrderListTable({ orders }: OrderListTableProps) {
163
+ // @codesyncer-inference: 페이지당 20개 (UX 표준)
164
+ const [pageSize, setPageSize] = useState(20);
165
+
166
+ // @codesyncer-todo: 정렬 옵션 추가 (날짜, 금액, 상태)
167
+
168
+ return (
169
+ <Table>
170
+ {/* @codesyncer-rule: 모바일에서는 카드 레이아웃으로 변경 */}
171
+ {/* ... */}
172
+ </Table>
173
+ );
174
+ }
175
+ ```
176
+
177
+ ---
178
+
179
+ ## ❌ 나쁜 주석 예시
180
+
181
+ ### 피해야 할 주석들
182
+
183
+ ```tsx
184
+ // ❌ 너무 모호함
185
+ // @codesyncer-inference: 이렇게 했음
186
+ const value = 10;
187
+
188
+ // ❌ 근거 없음
189
+ // @codesyncer-decision: 변경함
190
+ const API_URL = '/api/new';
191
+
192
+ // ❌ 의미 없음
193
+ // @codesyncer-todo: 나중에
194
+ function doSomething() {}
195
+
196
+ // ❌ 맥락 부족
197
+ // @codesyncer-context: 중요함
198
+ const IMPORTANT_VALUE = 42;
199
+ ```
200
+
201
+ ### 개선된 버전
202
+
203
+ ```tsx
204
+ // ✅ 구체적인 근거
205
+ // @codesyncer-inference: 기본값 10 (일반적인 재시도 대기 시간)
206
+ const RETRY_DELAY = 10;
207
+
208
+ // ✅ 명확한 이유와 날짜
209
+ // @codesyncer-decision: [2024-10-17] /api/v2로 변경 (API 버전업)
210
+ const API_URL = '/api/v2';
211
+
212
+ // ✅ 구체적인 TODO
213
+ // @codesyncer-todo: 에러 케이스 핸들링 추가 (네트워크 오류, 타임아웃)
214
+ function fetchData() {}
215
+
216
+ // ✅ 비즈니스 맥락 설명
217
+ // @codesyncer-context: VAT 세율 (2024년 기준 10%)
218
+ const TAX_RATE = 0.1;
219
+ ```
220
+
221
+ ---
222
+
223
+ ## 🔍 주석 검색
224
+
225
+ ### Bash 명령어
226
+
227
+ ```bash
228
+ # 모든 추론 내용 찾기
229
+ grep -r "@codesyncer-inference" ./src
230
+
231
+ # TODO 목록 확인
232
+ grep -r "@codesyncer-todo" ./src
233
+
234
+ # 의논 결정 사항
235
+ grep -r "@codesyncer-decision" ./src
236
+
237
+ # 특별 규칙
238
+ grep -r "@codesyncer-rule" ./src
239
+
240
+ # 비즈니스 맥락
241
+ grep -r "@codesyncer-context" ./src
242
+ ```
243
+
244
+ ### VS Code 검색
245
+
246
+ 1. `Cmd/Ctrl + Shift + F` (전체 검색)
247
+ 2. 검색어 입력: `@codesyncer-todo`
248
+ 3. 파일 필터: `src/**/*.{ts,tsx,js,jsx}`
249
+
250
+ ---
251
+
252
+ ## 📊 주석 통계
253
+
254
+ ARCHITECTURE.md에서 자동으로 통계를 제공합니다:
255
+
256
+ ```markdown
257
+ ## 주석 태그 통계
258
+ - @codesyncer-inference: 45개
259
+ - @codesyncer-decision: 12개
260
+ - @codesyncer-todo: 8개
261
+ - @codesyncer-rule: 5개
262
+ - @codesyncer-context: 15개
263
+ ```
264
+
265
+ "통계 업데이트" 명령으로 수동 갱신 가능
266
+
267
+ ---
268
+
269
+ ## 💡 주석 작성 팁
270
+
271
+ ### 1. 추론은 항상 근거와 함께
272
+
273
+ ```tsx
274
+ // ❌ @codesyncer-inference: useState 사용
275
+ // ✅ @codesyncer-inference: useState 사용 (간단한 로컬 상태, Zustand 불필요)
276
+ ```
277
+
278
+ ### 2. 결정은 날짜와 이유
279
+
280
+ ```tsx
281
+ // ❌ @codesyncer-decision: Stripe 사용
282
+ // ✅ @codesyncer-decision: [2024-10-15] Stripe 사용 (해외 결제 지원 필요)
283
+ ```
284
+
285
+ ### 3. TODO는 구체적으로
286
+
287
+ ```tsx
288
+ // ❌ @codesyncer-todo: 수정 필요
289
+ // ✅ @codesyncer-todo: 에러 바운더리 추가 (API 실패 시 폴백 UI)
290
+ ```
291
+
292
+ ### 4. 맥락은 "왜"에 집중
293
+
294
+ ```tsx
295
+ // ❌ @codesyncer-context: 인증
296
+ // ✅ @codesyncer-context: OAuth 2.0 인증 (Google, Kakao 로그인 지원)
297
+ ```
298
+
299
+ ### 5. 규칙은 예외적인 경우만
300
+
301
+ ```tsx
302
+ // ❌ @codesyncer-rule: TypeScript 사용 (이건 당연함)
303
+ // ✅ @codesyncer-rule: 이 파일만 any 타입 허용 (외부 라이브러리 타입 없음)
304
+ ```
305
+
306
+ ---
307
+
308
+ ## 🎯 체크리스트
309
+
310
+ 코드 작성 후 확인:
311
+
312
+ - [ ] 추론한 내용에 `@codesyncer-inference` 추가했나?
313
+ - [ ] 의논 결정은 `@codesyncer-decision`으로 기록했나?
314
+ - [ ] 확인 필요한 부분은 `@codesyncer-todo`로 표시했나?
315
+ - [ ] 비즈니스 로직에 `@codesyncer-context` 설명했나?
316
+ - [ ] 특별한 규칙은 `@codesyncer-rule`로 명시했나?
317
+ - [ ] 모든 주석에 구체적인 근거를 포함했나?
318
+
319
+ ---
320
+
321
+ **버전**: 1.0.0
322
+ **마지막 업데이트**: [TODAY]
323
+
324
+ *이 주석 시스템으로 모든 의사결정이 코드에 영구 기록됩니다.*
@@ -0,0 +1,227 @@
1
+ # DECISIONS.md - 의논 결정 기록
2
+
3
+ > **의사결정 로그** - 모든 중요 결정을 영구 기록
4
+ >
5
+ > 생성일: [TODAY]
6
+
7
+ ---
8
+
9
+ ## 📋 기록 형식
10
+
11
+ 모든 의논 결정은 다음 형식으로 자동 기록됩니다:
12
+
13
+ ```markdown
14
+ ---
15
+ ### [날짜] - [주제]
16
+ **카테고리**: [CRITICAL/IMPORTANT/MINOR]
17
+ **결정**: [결정 내용]
18
+ **이유**: [결정 이유]
19
+ **대안**: [고려했던 다른 옵션들]
20
+ **결정자**: [사용자명 또는 팀명]
21
+ **코드 위치**: [파일 경로:라인]
22
+ **관련 이슈**: [이슈 번호 또는 링크]
23
+ ---
24
+ ```
25
+
26
+ ---
27
+
28
+ ## 📝 결정 기록
29
+
30
+ <!-- 의논 시 자동으로 여기에 추가됩니다 -->
31
+
32
+ ### 예시 기록
33
+
34
+ ---
35
+ ### 2024-10-17 - 데이터 삭제 방식 선택
36
+ **카테고리**: CRITICAL
37
+ **결정**: Soft Delete 방식 사용
38
+ **이유**:
39
+ - 30일 복구 기간 필요 (고객 요청 대응)
40
+ - 통계 데이터 유지
41
+ - GDPR 준수 (30일 후 완전 삭제)
42
+ **대안**:
43
+ - Hard Delete: 즉시 삭제 (복구 불가)
44
+ - Archive: 별도 테이블로 이동 (복잡도 증가)
45
+ **결정자**: 개발팀 + 기획팀 협의
46
+ **코드 위치**: `src/services/UserService.ts:45`
47
+ **관련 이슈**: #123
48
+ ---
49
+
50
+ ---
51
+
52
+ ## 📊 카테고리별 통계
53
+
54
+ - **CRITICAL**: 0건 (결제, 보안, 데이터 삭제 등)
55
+ - **IMPORTANT**: 0건 (비즈니스 로직, 가격, 외부 연동 등)
56
+ - **MINOR**: 0건 (UI/UX, 성능 최적화 등)
57
+
58
+ **총 결정**: 0건
59
+
60
+ ---
61
+
62
+ ## 🔍 카테고리 설명
63
+
64
+ ### CRITICAL (필수 의논)
65
+ - 💰 결제/과금 관련
66
+ - 🔐 인증/권한/보안
67
+ - 🗑️ 데이터 삭제/마이그레이션
68
+ - 📜 개인정보/법적 규정
69
+
70
+ ### IMPORTANT (권장 의논)
71
+ - 💵 가격/비즈니스 로직
72
+ - 🔌 외부 API 연동
73
+ - 🚀 배포/인프라 변경
74
+
75
+ ### MINOR (선택적 의논)
76
+ - 🎨 UI/UX 개선
77
+ - ⚡ 성능 최적화
78
+ - 📦 라이브러리 변경
79
+
80
+ ---
81
+
82
+ ## 🔗 연관 문서
83
+
84
+ 의논 결정은 코드에도 주석으로 기록됩니다:
85
+
86
+ ```tsx
87
+ /**
88
+ * @codesyncer-decision: [2024-10-17] Soft Delete 방식
89
+ * 이유: 30일 복구 가능, GDPR 준수
90
+ */
91
+ async function deleteUser(id: string) {
92
+ return db.update(id, { deleted_at: new Date() });
93
+ }
94
+ ```
95
+
96
+ **검색**: `grep -r "@codesyncer-decision" ./src`
97
+
98
+ ---
99
+
100
+ ## 📅 월별 통계
101
+
102
+ ### 2024년 10월
103
+ - 총 결정: 0건
104
+ - CRITICAL: 0건
105
+ - IMPORTANT: 0건
106
+ - MINOR: 0건
107
+
108
+ ---
109
+
110
+ ## 💡 의논 프로세스
111
+
112
+ ### 1. 키워드 자동 감지
113
+ AI가 다음 키워드 감지 시 자동 중단:
114
+ - 결제, 인증, 삭제, 가격 등
115
+
116
+ ### 2. 옵션 제시
117
+ ```
118
+ ⚠️ '결제' 키워드 감지. 의논이 필요합니다.
119
+
120
+ 💡 추천안:
121
+ Stripe 사용
122
+
123
+ 🔄 대안:
124
+ A. Iamport (아임포트)
125
+ B. Toss Payments
126
+ C. 직접 구현
127
+
128
+ 어떻게 진행할까요?
129
+ ```
130
+
131
+ ### 3. 사용자 응답
132
+ - "진행" → 추천안 채택
133
+ - "대안 A" → 대안 선택
134
+ - "보류" → 나중에 결정
135
+
136
+ ### 4. 자동 기록
137
+ - DECISIONS.md에 추가
138
+ - 코드에 `@codesyncer-decision` 주석
139
+ - ARCHITECTURE.md 통계 업데이트
140
+
141
+ ---
142
+
143
+ ## 🎯 베스트 프랙티스
144
+
145
+ ### ✅ 좋은 결정 기록
146
+
147
+ ```markdown
148
+ ### 2024-10-15 - 결제 시스템 선택
149
+ **카테고리**: CRITICAL
150
+ **결정**: Stripe 사용
151
+ **이유**:
152
+ - 해외 결제 지원 필요
153
+ - 구독 결제 기능 내장
154
+ - 안정적인 서비스
155
+ **대안**:
156
+ - Iamport: 국내 전용 (해외 결제 불가)
157
+ - Toss: 아직 구독 기능 미흡
158
+ **결정자**: CTO + 개발팀
159
+ **코드 위치**: `src/services/PaymentService.ts`
160
+ ```
161
+
162
+ ### ❌ 나쁜 결정 기록
163
+
164
+ ```markdown
165
+ ### 어제 - 뭔가 결정
166
+ **카테고리**: 중요함
167
+ **결정**: 이걸로 함
168
+ **이유**: 그냥
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 🔄 자동 업데이트
174
+
175
+ 이 문서는 다음 상황에서 자동 업데이트됩니다:
176
+
177
+ 1. **의논 필수 키워드** 감지 후 결정
178
+ 2. 사용자가 명시적으로 의논 요청
179
+ 3. `@codesyncer-decision` 태그 추가 시
180
+
181
+ **수동 추가**: 직접 위 형식으로 작성 가능
182
+
183
+ ---
184
+
185
+ ## 📚 검색
186
+
187
+ ### 최근 결정 찾기
188
+ ```bash
189
+ # 최근 10개 결정
190
+ tail -n 50 .claude/DECISIONS.md
191
+
192
+ # 특정 카테고리
193
+ grep "CRITICAL" .claude/DECISIONS.md
194
+
195
+ # 특정 날짜
196
+ grep "2024-10-" .claude/DECISIONS.md
197
+ ```
198
+
199
+ ### 코드에서 결정 찾기
200
+ ```bash
201
+ # 모든 결정 주석
202
+ grep -r "@codesyncer-decision" ./src
203
+
204
+ # 특정 파일의 결정
205
+ grep "@codesyncer-decision" src/services/PaymentService.ts
206
+ ```
207
+
208
+ ---
209
+
210
+ ## 🤝 팀 협업
211
+
212
+ ### 새 팀원 온보딩
213
+ 1. 이 파일을 처음부터 읽기
214
+ 2. 주요 결정 사항 파악
215
+ 3. "왜 이렇게 구현했는지" 이해
216
+
217
+ ### 결정 리뷰
218
+ - 월 1회 팀 회의에서 리뷰
219
+ - 재검토 필요한 결정 표시
220
+ - 변경된 결정은 새 항목으로 추가
221
+
222
+ ---
223
+
224
+ **버전**: 1.0.0
225
+ **마지막 업데이트**: [TODAY]
226
+
227
+ *모든 중요한 의사결정이 영구 기록됩니다. 팀의 지식 자산입니다.*
@@ -0,0 +1,179 @@
1
+ # 🤖 [PROJECT_NAME] 멀티 레포 자동 전환 시스템
2
+
3
+ > 기능 요청만 하면 AI 코딩 어시스턴트가 알아서 필요한 레포를 찾아가서 작업합니다.
4
+ >
5
+ > **Powered by CodeSyncer** - AI-agnostic multi-repository collaboration system
6
+
7
+ ---
8
+
9
+ ## 🎯 핵심 동작 원리
10
+
11
+ ### 자동 레포 감지 및 전환
12
+ 사용자가 기능을 요청하면 AI 어시스턴트가 자동으로:
13
+ 1. 요청 분석 → 필요한 레포 파악
14
+ 2. 해당 레포로 자동 이동
15
+ 3. 각 레포의 CLAUDE.md 규칙 적용
16
+ 4. 작업 수행
17
+
18
+ ## 📁 프로젝트 레포 구성
19
+
20
+ | 레포 | 폴더명 | 역할 | 규칙 파일 위치 |
21
+ |------|--------|------|---------------|
22
+ [REPO_TABLE]
23
+
24
+ ## 🧠 자동 레포 선택 규칙
25
+
26
+ ### 키워드 기반 자동 판단
27
+ | 키워드 | 이동할 레포 | 자동 실행 명령 |
28
+ |--------|------------|---------------|
29
+ [KEYWORD_MAPPING]
30
+
31
+ ### 작업 유형별 자동 판단
32
+ ```javascript
33
+ function 레포_자동_선택(사용자_요청) {
34
+ // API 수정 필요한가?
35
+ if (요청.match(/API|데이터|서버|인증|DB/)) {
36
+ 작업_레포.push("백엔드 레포");
37
+ }
38
+
39
+ // UI 수정 필요한가?
40
+ if (요청.match(/페이지|화면|버튼|폼|UI/)) {
41
+ 작업_레포.push("프론트 레포");
42
+ }
43
+
44
+ // 여러 레포 작업 필요한가?
45
+ if (요청.includes("기능") && !특정_레포_명시) {
46
+ // 백엔드 → 프론트 → 모바일 순서로
47
+ return ["백엔드", "프론트", "모바일"];
48
+ }
49
+
50
+ return 작업_레포;
51
+ }
52
+ ```
53
+
54
+ ## 🔄 자동 전환 프로토콜
55
+
56
+ ### 단일 레포 작업
57
+
58
+ ```bash
59
+ User: "로그인 API 만들어줘"
60
+
61
+ AI 자동 동작:
62
+ 1. 키워드 "API" 감지
63
+ 2. cd [백엔드 폴더]
64
+ 3. cat CLAUDE.md # 백엔드 규칙 로드
65
+ 4. [백엔드 규칙에 따라 API 생성]
66
+ 5. "✅ [백엔드 레포]에 로그인 API 생성 완료"
67
+ ```
68
+
69
+ ### 멀티 레포 작업
70
+
71
+ ```bash
72
+ User: "결제 기능 추가해줘"
73
+
74
+ AI 자동 동작:
75
+ 1. "기능" 키워드 → 여러 레포 필요 판단
76
+ 2. 작업 순서 결정:
77
+ - 1단계: [백엔드] - API
78
+ - 2단계: [프론트] - UI
79
+ - 3단계: [모바일] - 앱화면
80
+
81
+ 3. 순차 작업:
82
+ cd [백엔드 폴더] && cat CLAUDE.md
83
+ → 결제 API 생성
84
+
85
+ cd ../[프론트 폴더] && cat CLAUDE.md
86
+ → 결제 페이지 생성
87
+
88
+ cd ../[모바일 폴더] && cat CLAUDE.md
89
+ → 결제 화면 생성
90
+
91
+ 4. "✅ 결제 기능 전체 구현 완료"
92
+ ```
93
+
94
+ ## ⚠️ 중요 규칙
95
+
96
+ ### 레포 이동 시 반드시
97
+
98
+ 1. 현재 위치 확인: `pwd`
99
+ 2. 대상 레포로 이동: `cd ../[레포명]`
100
+ 3. 규칙 파일 로드: `cat CLAUDE.md || cat .claude/CLAUDE.md`
101
+ 4. 해당 규칙 적용 알림: "📁 [레포명] 규칙 적용됨"
102
+ 5. 해당 레포 규칙으로 작업 수행
103
+
104
+ ### 우선순위
105
+
106
+ 1. 사용자가 명시한 레포 > 자동 판단
107
+ 2. 각 레포의 CLAUDE.md > 이 마스터 문서
108
+ 3. 백엔드 작업 > 프론트/모바일 작업 (순서)
109
+
110
+ ## 🚀 사용법
111
+
112
+ ### 세션 시작
113
+
114
+ ```
115
+ "[PROJECT_NAME] 멀티 레포 모드 시작"
116
+ → 이 문서 로드
117
+ → 자동 전환 시스템 활성화
118
+ ```
119
+
120
+ ### 작업 요청 (사용자는 레포 몰라도 됨)
121
+
122
+ ```
123
+ "사용자 관리 추가" → 자동으로 필요한 모든 레포 작업
124
+ "버그 수정" → 관련 레포 자동 탐색
125
+ "로그인 페이지만" → 프론트 레포만 작업
126
+ ```
127
+
128
+ ## 📊 작업 로그 형식
129
+
130
+ ```yaml
131
+ 요청: "[사용자 요청 내용]"
132
+ 분석:
133
+ 필요_레포: [[레포1], [레포2]]
134
+ 작업_순서: [백엔드 → 프론트]
135
+ 수행:
136
+ [레포1]:
137
+ 이동: cd [폴더]
138
+ 규칙: CLAUDE.md 적용
139
+ 작업: [수행 내용]
140
+ 결과: ✅
141
+ [레포2]:
142
+ 이동: cd [폴더]
143
+ 규칙: CLAUDE.md 적용
144
+ 작업: [수행 내용]
145
+ 결과: ✅
146
+ 완료: "[요약]"
147
+ ```
148
+
149
+ ---
150
+
151
+ ## 🏷️ 주석 태그 시스템
152
+
153
+ CodeSyncer는 두 가지 태그 형식을 모두 지원합니다:
154
+
155
+ - **`@codesyncer-*`** (권장): 새로운 표준, 모든 AI 도구 호환
156
+ - **`@claude-*`** (레거시): 기존 Claude Code 프로젝트 호환
157
+
158
+ ### 사용 가능한 태그
159
+
160
+ ```typescript
161
+ @codesyncer-rule // 특별 규칙 (@claude-rule 호환)
162
+ @codesyncer-inference // 추론 내용과 근거 (@claude-inference 호환)
163
+ @codesyncer-decision // 의논 결정 사항 (@claude-decision 호환)
164
+ @codesyncer-todo // 확인 필요 (@claude-todo 호환)
165
+ @codesyncer-context // 비즈니스 맥락 (@claude-context 호환)
166
+ ```
167
+
168
+ 두 형식 모두 동일하게 작동하므로 편한 것을 사용하세요!
169
+
170
+ ---
171
+
172
+ **GitHub**: https://github.com/[GITHUB_USERNAME]/[PROJECT_NAME]
173
+ **버전**: 1.0.0 (Powered by CodeSyncer)
174
+ **생성일**: [TODAY]
175
+
176
+ ---
177
+
178
+ *CodeSyncer - AI-powered multi-repository collaboration system*
179
+ *현재 지원: Claude Code | 향후 지원 예정: Cursor, GitHub Copilot, Continue.dev*