codesyncer 3.2.0 → 3.3.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.
package/README.ko.md CHANGED
@@ -1,952 +1,169 @@
1
- # CodeSyncer CLI
1
+ # CodeSyncer
2
2
 
3
3
  > **Claude는 세션이 끝나면 모든 것을 잊습니다. CodeSyncer가 기억하게 해줍니다.**
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/codesyncer.svg)](https://www.npmjs.com/package/codesyncer)
6
6
  [![License](https://img.shields.io/badge/License-Commons%20Clause-red.svg)](./LICENSE)
7
7
  [![GitHub stars](https://img.shields.io/github/stars/bitjaru/codesyncer.svg)](https://github.com/bitjaru/codesyncer/stargazers)
8
- [![GitHub issues](https://img.shields.io/github/issues/bitjaru/codesyncer.svg)](https://github.com/bitjaru/codesyncer/issues)
9
8
 
10
9
  한국어 | [English](./README.md)
11
10
 
12
11
  ---
13
12
 
14
- ## 문제 → 해결
13
+ ## 문제 → 해결
15
14
 
16
15
  | 문제 | CodeSyncer 없이 | CodeSyncer 사용 시 |
17
16
  |------|----------------|-------------------|
18
- | **맥락 손실** | 매 세션 = 처음부터 다시 | 코드 태그 = 영구 기억 |
19
- | **결정 망각** | "왜 JWT 썼더라?" 🤷 | `@codesyncer-decision` 즉시 확인 |
20
- | **위험한 추론** | AI가 가격, 엔드포인트, 인증 추측 | 중요 키워드 자동 일시정지 |
21
- | **기록 없음** | AI 추론 이유 없음 | `codesyncer watch`가 모든 포착 |
22
-
23
- **결과**: 현재 프롬프트만 아는 AI가 아닌, 프로젝트를 진짜로 학습하는 AI
17
+ | **맥락 손실** | 매 세션 = 처음부터 다시 | `@codesyncer-*` 태그 = 영구 기억 |
18
+ | **태그 누락** | 변경사항 추적 | `codesyncer watch`가 모두 포착 |
19
+ | **규칙 망각** | 긴 세션에서 AI가 규칙 잊음 | Hooks가 최적 타이밍에 자동 리마인드 |
20
+ | **위험한 추론** | AI 가격, 보안, API 추측 | 중요 키워드 자동 일시정지 |
24
21
 
25
22
  ---
26
23
 
27
- ## 🎬 데모
24
+ ## 데모
28
25
 
29
26
  ![CodeSyncer Demo](https://raw.githubusercontent.com/bitjaru/codesyncer/main/demo-ko.gif)
30
27
 
31
28
  ---
32
29
 
33
- ## 🧠 작동 원리
34
-
35
- **핵심 인사이트**: AI는 코드를 읽습니다. 그러니 맥락을 코드 안에 넣으세요.
36
-
37
- ```
38
- ┌─────────────────────────┐
39
- │ 🧑‍💻 Claude와 코딩 │
40
- └───────────┬─────────────┘
41
-
42
- ┌──────────────┐
43
- │ 결정함? │
44
- └──────┬───────┘
45
-
46
- ┌─────────────────────────┐
47
- │ @codesyncer-decision │
48
- │ @codesyncer-inference │
49
- └───────────┬─────────────┘
50
-
51
- ┌─────────────────────────┐
52
- │ 📝 코드에 영구 저장 │
53
- └───────────┬─────────────┘
54
-
55
- ┌─────────────────────────┐
56
- │ 🔄 다음 세션 │
57
- │ Claude가 코드 읽음 │
58
- └───────────┬─────────────┘
59
-
60
- ┌─────────────────────────┐
61
- │ ✅ 맥락 복구 완료! │
62
- └─────────────────────────┘
63
- ```
64
-
65
- ```typescript
66
- // @codesyncer-decision: [2024-01-15] JWT 선택 (세션 관리가 더 간단함)
67
- // @codesyncer-inference: 페이지 크기 20 (일반적인 UX 패턴)
68
- // @codesyncer-rule: httpOnly 쿠키 사용 (XSS 방지)
69
- const authConfig = { /* ... */ };
70
- ```
71
-
72
- 다음 세션? Claude가 코드를 읽으면 **자동으로 모든 맥락이 복구됩니다**.
73
-
74
- ---
75
-
76
- ## 🔥 Watch 모드: 맥락을 절대 놓치지 마세요
77
-
78
- **문제**: Claude가 코딩하면서 태그 추가를 잊을 수 있습니다.
79
-
80
- **해결**: `codesyncer watch`로 태그 없는 변경을 잡아내세요.
81
-
82
- ```bash
83
- codesyncer watch
84
- ```
85
-
86
- ```
87
- [14:32:10] 📝 변경됨: src/utils/api.ts
88
- └── ⚠️ 태그 없음!
89
- 💡 힌트: 추론하면 @codesyncer-inference 추가
90
-
91
- [14:33:22] 📝 변경됨: src/auth/login.ts
92
- └── 🎯 발견: @codesyncer-decision
93
- "SWR 대신 React Query 사용"
94
- └── ✅ DECISIONS.md에 추가됨
95
- ```
96
-
97
- **왜 중요한가**: 모든 코드 변경은 맥락을 기록할 기회입니다. Watch 모드가 놓치는 것 없이 잡아냅니다.
98
-
99
- ---
100
-
101
- ## 🪝 Hooks: 자동 리마인드 시스템 (v3.2.0 신규)
102
-
103
- **문제**: 긴 코딩 세션에서 AI가 태그 규칙을 잊을 수 있습니다.
104
-
105
- **해결**: Hooks가 AI 응답 완료 전에 자동으로 태그 추가 여부를 리마인드합니다.
106
-
107
- ### 작동 방식
108
-
109
- `codesyncer init` 실행 시 다음과 같이 묻습니다:
110
-
111
- ```
112
- 🪝 Hooks 설정 (권장)
113
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
- Hooks란?
115
- 세션이 길어지면 AI가 태그 규칙을 까먹을 수 있습니다.
116
- Hooks를 설정하면 AI가 응답 완료 전에
117
- 자동으로 "태그 붙였어?" 확인합니다.
118
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
-
120
- ? Hooks를 설정할까요? (권장) (Y/n)
121
- ```
122
-
123
- "Y" 선택 시 `.claude/settings.json` 생성:
124
-
125
- ```json
126
- {
127
- "hooks": {
128
- "Stop": [{
129
- "hooks": [{
130
- "type": "prompt",
131
- "prompt": "작업 완료 전 CodeSyncer 체크: 1) 추론→@codesyncer-inference 태그? 2) 결정→@codesyncer-decision 태그? 3) 💰결제/🔐보안→사용자에게 물었나? 빠진 태그가 있으면 지금 추가하세요."
132
- }]
133
- }]
134
- }
135
- }
136
- ```
137
-
138
- ### Hook 이벤트
139
-
140
- | 이벤트 | 트리거 시점 | 목적 |
141
- |--------|------------|------|
142
- | **Stop** | AI 응답 완료 전 | 태그 추가 리마인드 |
143
- | **PreCompact** | 컨텍스트 압축 전 | 핵심 규칙 메모리 유지 |
144
-
145
- ### Hooks 관리
146
-
147
- - **활성화**: AI에게 "CodeSyncer Hooks 설정해줘" 말하기
148
- - **비활성화**: `.claude/settings.json` 삭제
149
- - **커스터마이징**: `.claude/settings.json` 직접 편집
150
-
151
- ---
152
-
153
- ## 📂 대규모 프로젝트 컨텍스트 최적화 (v3.2.0 신규)
154
-
155
- 코드베이스가 커지면 AI가 헷갈릴 수 있습니다. v3.2.0에서 AI 집중력을 유지하는 기능이 추가되었습니다.
156
-
157
- ### 서브폴더별 CLAUDE.md
158
-
159
- 프로젝트가 커지면 특정 폴더에 CLAUDE.md를 추가하세요:
160
-
161
- ```
162
- project/
163
- ├── CLAUDE.md # 전체 규칙
164
- ├── src/
165
- │ ├── payment/
166
- │ │ └── CLAUDE.md # 결제 관련 규칙 + 태그 리마인드
167
- │ └── auth/
168
- │ └── CLAUDE.md # 인증 관련 규칙
169
- ```
170
-
171
- AI가 해당 폴더에 진입하면 자동으로 관련 CLAUDE.md를 읽습니다.
172
-
173
- **템플릿 포함**: `src/templates/subfolder-claude.md`
174
-
175
- ### Do Not Touch 영역
176
-
177
- AI가 절대 수정하면 안 되는 폴더 정의:
178
-
179
- ```markdown
180
- ## 🚫 Do Not Touch
181
- - `src/generated/` - 자동 생성 파일, 수정 금지
182
- - `src/legacy/` - 마이그레이션 전까지 수정 금지
183
- - `.env*` - 환경 변수, 직접 수정 금지
184
- ```
185
-
186
- 이로써 AI가 실수로 중요하거나 자동 생성된 코드를 수정하는 것을 방지합니다.
187
-
188
- ---
189
-
190
- ## 🔗 멀티 레포 작업 추적 (v3.2.0 신규)
191
-
192
- ### Git 브랜치 = 작업 ID
193
-
194
- 브랜치명을 작업 ID로 사용하세요:
195
- - `feature/AUTH-001-login`
196
- - `fix/PAY-002-webhook`
197
-
198
- ### 크로스 레포 태그
199
-
200
- 여러 레포에 걸친 작업은 같은 태그 사용:
201
-
202
- ```typescript
203
- // frontend 레포
204
- // @codesyncer-work:AUTH-001 로그인 폼
205
-
206
- // backend 레포
207
- // @codesyncer-work:AUTH-001 로그인 API
208
- ```
209
-
210
- 레포 전체 검색: `grep -r "@codesyncer-work:AUTH-001" ../`
211
-
212
- ---
213
-
214
- ## ✨ 전체 기능 목록
215
-
216
- | 기능 | 설명 |
217
- |------|------|
218
- | 🏷️ **태그 시스템** | `@codesyncer-decision`, `@codesyncer-inference`, `@codesyncer-rule` - 코드에 영구 맥락 |
219
- | 🔄 **Watch 모드** | 실시간 모니터링, 태그 없는 변경 경고, DECISIONS.md 자동 동기화 |
220
- | ✅ **Validate** | 태그 커버리지 확인, 누락된 문서 찾기, 수정 제안 |
221
- | 🤝 **자동 일시정지** | 결제/보안/인증 키워드 감지 → 코딩 전 확인 |
222
- | 🪝 **Hooks** | 자동 리마인드 시스템 - 긴 세션에서도 AI가 규칙을 잊지 않음 (v3.2.0 신규) |
223
- | 📦 **모노레포** | Turborepo, pnpm, Nx, Lerna, npm/yarn workspaces 자동 감지 |
224
- | 🌐 **다국어** | 한글/영문 완벽 지원 |
225
- | 🔒 **보안** | 경로 탐색 방지 및 입력 검증 |
226
-
227
- ---
228
-
229
- ## 🔄 전체 워크플로우
230
-
231
- ```
232
- ┌─────────────────────────────────────────────────────────────┐
233
- │ 1. 설정 (최초 1회) │
234
- │ $ npm install -g codesyncer │
235
- │ $ codesyncer init │
236
- │ → CLAUDE.md, SETUP_GUIDE.md 생성 │
237
- └─────────────────────────────────────────────────────────────┘
238
-
239
- ┌─────────────────────────────────────────────────────────────┐
240
- │ 2. AI 학습시키기 (세션마다 1회) │
241
- │ Claude Code 열고 말하기: │
242
- │ "CLAUDE.md 읽어줘" │
243
- │ → Claude가 태그 시스템 학습 │
244
- └─────────────────────────────────────────────────────────────┘
245
-
246
- ┌─────────────────────────────────────────────────────────────┐
247
- │ 3. 코딩 (watch 모드 실행 상태로) │
248
- │ $ codesyncer watch ← 백그라운드 실행 │
249
- │ Claude와 평소처럼 코딩 │
250
- │ → Claude가 @codesyncer-* 태그 자동 추가 │
251
- │ → Watch 모드가 태그 누락 시 알림 │
252
- └─────────────────────────────────────────────────────────────┘
253
-
254
- ┌─────────────────────────────────────────────────────────────┐
255
- │ 4. 다음 세션 │
256
- │ Claude가 코드 읽음 → 태그 확인 │
257
- │ → 맥락 자동 복구 완료! │
258
- └─────────────────────────────────────────────────────────────┘
259
- ```
260
-
261
- **지원 AI 도구:**
262
- - ✅ **Claude Code** (권장)
263
- - 🚧 Cursor, GitHub Copilot, Continue.dev (곧 지원 예정)
264
-
265
- ---
266
-
267
- ## 📦 설치
268
-
269
- ```bash
270
- npm install -g codesyncer
271
- ```
272
-
273
- ---
274
-
275
- ## 🔄 CodeSyncer 업데이트
276
-
277
- ### 현재 버전 확인
278
- ```bash
279
- codesyncer --version
280
- ```
281
-
282
- ### 최신 버전 확인
283
- ```bash
284
- npm view codesyncer version
285
- ```
286
-
287
- ### 최신 버전으로 업데이트
288
- ```bash
289
- npm install -g codesyncer@latest
290
- ```
291
-
292
- ### 업데이트 후, 검증 및 프로젝트 동기화
293
-
294
- CodeSyncer를 새 버전으로 업데이트한 후, 먼저 설정을 검증하고 동기화하세요:
295
-
296
- ```bash
297
- cd /path/to/your/multi-repo-workspace
298
-
299
- # 1단계: 설정 검증 (v2.7.0 신규)
300
- codesyncer validate
301
-
302
- # 2단계: 문제 수정
303
- codesyncer update
304
- ```
305
-
306
- #### v2.7.0 신규: `codesyncer validate`
307
-
308
- `validate` 명령어는 CodeSyncer 설정을 검사하고 문제를 보고합니다:
309
-
310
- ```bash
311
- codesyncer validate # 기본 검증
312
- codesyncer validate --verbose # 파일 경로 표시
313
- ```
314
-
315
- **검사 항목:**
316
- - ✅ 마스터 설정 존재 여부 (`.codesyncer/MASTER_CODESYNCER.md`)
317
- - ✅ AI 자동 로드용 루트 `CLAUDE.md`
318
- - ✅ 모든 레포지토리의 필수 `.claude/` 파일
319
- - ✅ 생성된 파일의 미완성 플레이스홀더
320
- - ✅ 언어 설정
321
-
322
- **출력 예시:**
323
- ```
324
- 🔍 CodeSyncer - Validate
325
-
326
- 📊 정보
327
- ────────────────────────────────────────
328
- 레포지토리 수: 3
329
- 설정 완료된 레포: 2/3
330
- 언어: ko (config.json)
331
-
332
- ⚠️ 경고
333
- ────────────────────────────────────────
334
- • mobile-app: ARCHITECTURE.md 누락
335
- • 루트 CLAUDE.md 없음 (AI 자동 로드 불가)
336
-
337
- ────────────────────────────────────────
338
- ⚠️ 검증 완료 (경고 2개)
339
-
340
- 💡 수정하려면:
341
- codesyncer update
342
- ```
343
-
344
- #### `codesyncer update`
345
-
346
- 프로젝트를 최신 템플릿 및 기능과 동기화:
347
-
348
- **수행 작업:**
349
- 1. ✅ 워크스페이스에 추가된 새 레포지토리 스캔
350
- 2. ✅ 새 버전에서 누락된 파일 감지 (예: v2.1.2+ 버전의 루트 CLAUDE.md)
351
- 3. ✅ 언어 설정 자동 감지 (한국어/영어)
352
- 4. ✅ 새 파일 생성 전 사용자 확인 요청
353
- 5. ✅ 기존 커스터마이징 내용 보존
354
- 6. ✅ **v3.1.0 신규**: 구버전 템플릿 감지 및 업그레이드 제안
355
-
356
- **출력 예시:**
357
- ```
358
- 🔄 CodeSyncer - Update System
359
-
360
- ✓ Scan complete
361
-
362
- ⚠️ Missing root CLAUDE.md (new in v2.1.2)
363
- This file allows Claude to automatically load context at session start.
364
-
365
- ? 루트 CLAUDE.md를 생성할까요? (Y/n) Y
366
-
367
- ✓ 루트 CLAUDE.md 생성 완료!
368
- 💡 이제 Claude가 세션 시작 시 자동으로 컨텍스트를 로드합니다!
369
-
370
- 🤖 다음 단계 (AI 어시스턴트에게):
371
- ────────────────────────────────────────────────────────────
372
- 옵션 1) 새 세션 시작
373
- Claude가 자동으로 루트 CLAUDE.md를 찾아서 읽습니다.
374
-
375
- 옵션 2) 현재 세션에서 바로 적용
376
- "CLAUDE.md 읽어줘"
377
- ────────────────────────────────────────────────────────────
378
-
379
- ✅ Update complete!
380
- ```
381
-
382
- #### 템플릿 업그레이드 (v3.1.0 신규)
383
-
384
- CodeSyncer를 새 버전으로 업데이트하면, 기존 템플릿 파일이 구버전일 수 있습니다. `update` 명령어가 이를 자동으로 감지합니다:
385
-
386
- ```
387
- 📦 새 버전 감지: v3.1.0
388
-
389
- 📁 my-project/
390
- • CLAUDE.md (v3.0.0 → v3.1.0)
391
- • COMMENT_GUIDE.md (버전 없음 → v3.1.0)
392
-
393
- ? 2개 템플릿을 업그레이드할까요?
394
- > 예 - 업그레이드 (기존 파일 .backup으로 백업)
395
- 아니오 - 건너뛰기
396
- 미리보기 - 변경 파일만 확인
397
- ```
398
-
399
- **기능:**
400
- - 🔍 버전 메타데이터를 읽어 구버전 템플릿 자동 감지
401
- - 💾 업그레이드 전 `.backup` 파일 생성 (예: `CLAUDE.md.backup.2024-01-17`)
402
- - 📋 업그레이드 시 프로젝트 변수 (프로젝트 이름, 기술 스택) 보존
403
- - 👁️ 변경 사항을 미리 확인하는 미리보기 옵션
404
-
405
- **`codesyncer update` 실행 후:**
406
-
407
- 다음 중 하나를 선택하여 변경사항을 적용하세요:
408
-
409
- **옵션 1: 새 AI 세션 시작** (권장)
410
- - 현재 AI 어시스턴트 종료
411
- - 새 세션 시작
412
- - Claude가 자동으로 루트 CLAUDE.md를 찾아서 읽음
413
-
414
- **옵션 2: 현재 세션에서 적용**
415
- - AI에게 말하기: **"CLAUDE.md 읽어줘"**
416
- - AI가 즉시 업데이트된 컨텍스트 로드
417
-
418
- ---
419
-
420
- ## 🚀 빠른 시작
421
-
422
- ### 1단계: CodeSyncer 설치
30
+ ## 빠른 시작
423
31
 
424
32
  ```bash
33
+ # 1. 설치
425
34
  npm install -g codesyncer
426
- ```
427
35
 
428
- ### 2단계: AI 어시스턴트 실행
429
-
430
- AI 코딩 어시스턴트를 실행하세요:
431
- - **Claude Code** (권장)
432
- - Cursor
433
- - GitHub Copilot
434
- - 또는 다른 AI 코딩 도구
435
-
436
- 반드시 **활성화되어 실행 중**이어야 합니다.
437
-
438
- ### 3단계: 프로젝트로 이동
439
-
440
- ```bash
36
+ # 2. 초기화
441
37
  cd /path/to/your/project
442
- ```
443
-
444
- CodeSyncer는 **단일 레포지토리**, **멀티 레포 워크스페이스**, **모노레포** 모두 지원합니다:
445
-
446
- **단일 레포지토리** (자동 감지):
447
- ```
448
- my-project/
449
- ├── package.json
450
- ├── src/
451
- └── ...
452
- ```
453
-
454
- **멀티 레포 워크스페이스**:
455
- ```
456
- workspace/
457
- ├── backend/
458
- ├── frontend/
459
- └── mobile/
460
- ```
461
-
462
- **모노레포** (Turborepo, pnpm, Nx, Lerna, npm/yarn workspaces 자동 감지):
463
- ```
464
- monorepo/
465
- ├── package.json # workspaces: ["packages/*", "apps/*"]
466
- ├── turbo.json # 또는 pnpm-workspace.yaml, nx.json, lerna.json
467
- ├── packages/
468
- │ ├── shared/
469
- │ └── ui/
470
- └── apps/
471
- ├── web/
472
- └── api/
473
- ```
474
-
475
- ### 4단계: CodeSyncer 초기화
476
-
477
- ```bash
478
38
  codesyncer init
479
- ```
480
-
481
- 다음을 입력합니다:
482
- - 언어 선택 (한글/English)
483
- - 프로젝트 이름
484
- - GitHub 사용자명
485
-
486
- **실행 과정:**
487
-
488
- | 모드 | 감지 조건 | 생성 결과 |
489
- |------|-----------|-----------|
490
- | **단일 레포** | 현재 폴더에 `package.json`, `.git` 등 존재 | `.claude/SETUP_GUIDE.md` 생성 |
491
- | **모노레포** | `turbo.json`, `pnpm-workspace.yaml`, `nx.json`, `lerna.json` 또는 `package.json`의 `workspaces` 존재 | `.codesyncer/SETUP_GUIDE.md` 생성 (패키지별 설정) |
492
- | **멀티 레포** | 하위 폴더에 별도 레포지토리들 존재 | `.codesyncer/SETUP_GUIDE.md` 생성 |
493
-
494
- **CodeSyncer는 여기까지만 합니다!** 프레임워크와 규칙만 제공하고, 이제 AI가 직접 설정합니다.
495
39
 
496
- ---
497
-
498
- ## ⚠️ 중요: 5단계 - AI가 모든 설정 완료
499
-
500
- > **🎯 이 단계를 건너뛰지 마세요!** 여기서 마법이 일어납니다.
40
+ # 3. AI가 설정 완료 (Claude에게 말하기)
41
+ ".claude/SETUP_GUIDE.md 읽고 지시사항대로 설정해줘"
501
42
 
502
- **Claude Code 실행** (또는 선호하는 AI 어시스턴트)하고 다음과 같이 말하세요:
503
-
504
- **단일 레포지토리의 경우:**
505
- ```
506
- ".claude/SETUP_GUIDE.md 파일을 읽고 지시사항대로 설정해줘"
507
- ```
508
-
509
- **멀티 레포 워크스페이스의 경우:**
510
- ```
511
- ".codesyncer/SETUP_GUIDE.md 파일을 읽고 지시사항대로 설정해줘"
43
+ # 4. 코딩 시작 ( 세션마다)
44
+ "CLAUDE.md 읽어줘"
512
45
  ```
513
46
 
514
- ### 이후 자동으로 진행되는 작업:
515
-
516
- **1️⃣ AI가 코드 분석**
517
- - 각 레포지토리의 실제 파일 읽기
518
- - 기술 스택, 패턴, 구조 파악
519
- - 프로젝트 아키텍처 이해
520
-
521
- **2️⃣ AI가 중요한 질문** (절대 추론하지 않음!)
522
- - ❓ "API 엔드포인트가 뭐예요?"
523
- - ❓ "가격 정책과 비즈니스 로직은 어떻게 되나요?"
524
- - ❓ "어떤 인증 방식을 사용하나요?"
525
- - ❓ "데이터베이스 스키마는 어떻게 구성되어 있나요?"
526
- - ❓ "어떤 외부 서비스와 연동하나요?"
527
-
528
- **3️⃣ AI가 완전한 문서 생성**
529
- - `.codesyncer/MASTER_CODESYNCER.md` → 멀티 레포 네비게이션
530
- - `<repo>/.claude/CLAUDE.md` → 코딩 규칙
531
- - `<repo>/.claude/ARCHITECTURE.md` → 프로젝트 구조
532
- - `<repo>/.claude/DECISIONS.md` → 의사결정 기록
533
- - `<repo>/.claude/COMMENT_GUIDE.md` → 주석 태그 가이드
47
+ ---
534
48
 
535
- > **💡 왜 이게 효과적인가**: AI가 여러분의 실제 코드를 분석하고 질문합니다. 생성된 문서는 일반적인 템플릿이 아닌, 여러분의 프로젝트에 맞춤화된 내용입니다.
49
+ ## 핵심 기능
536
50
 
537
- ---
51
+ ### 🏷️ 태그 시스템
538
52
 
539
- ### 6단계: 코딩 시작!
53
+ 맥락을 코드 안에 넣으세요. AI가 코드를 읽으면 자동으로 맥락 복구.
540
54
 
541
- 설정이 완료되면 AI에게 다음과 같이 말하세요:
542
- ```
543
- "CLAUDE.md 읽어줘"
55
+ ```typescript
56
+ // @codesyncer-decision: [2024-01-15] JWT 선택 (세션 관리가 더 간단함)
57
+ // @codesyncer-inference: 페이지 크기 20 (일반적인 UX 패턴)
58
+ const authConfig = { /* ... */ };
544
59
  ```
545
60
 
546
- AI 어시스턴트가:
547
- - 프로젝트의 코딩 규칙 준수
548
- - 올바른 기술 스택 패턴 사용
549
- - 중요한 결정 전 질문
550
- - 모든 결정을 `@codesyncer-*` 태그로 기록
61
+ **[→ 태그 시스템 가이드](./docs/ko/TAGS.md)**
551
62
 
552
63
  ---
553
64
 
554
- ## 📚 사용법
65
+ ### 🔄 Watch 모드
555
66
 
556
- ### 협업 시스템 초기화
557
- ```bash
558
- codesyncer init
559
- ```
67
+ 태그 없는 변경을 실시간 감지:
560
68
 
561
- ### 프로젝트 구조 업데이트
562
69
  ```bash
563
- codesyncer update
564
- ```
565
-
566
- ### Watch 모드 (v2.6.0 신규)
567
- ```bash
568
- codesyncer watch # 실시간 모니터링 시작
569
- codesyncer watch --log # 파일 로깅 포함
70
+ codesyncer watch
570
71
  ```
571
72
 
572
- **기능:**
573
- - 파일 변경 실시간 감지
574
- - `@codesyncer-*` 태그 자동으로 `DECISIONS.md`에 동기화
575
- - 예쁜 콘솔 출력과 세션 통계
576
-
577
- **출력 예시:**
578
73
  ```
579
- [14:32:10] 변경됨: src/utils/api.ts
74
+ [14:32:10] 📝 변경됨: src/auth/login.ts
580
75
  └── 🎯 발견: @codesyncer-decision
581
- "SWR 대신 React Query 사용"
582
76
  └── ✅ DECISIONS.md에 추가됨
583
77
  ```
584
78
 
585
- ### 워크스페이스에 새 레포 추가
586
- ```bash
587
- codesyncer add-repo
588
- ```
589
-
590
- ---
591
-
592
- ## 🏷️ 주석 태그 시스템
593
-
594
- CodeSyncer는 체계적인 주석 태그 시스템을 사용하여 모든 AI의 추론과 결정을 코드에 영구 기록합니다.
595
-
596
- ### 사용 가능한 태그
597
-
598
- | 태그 | 용도 | 예시 |
599
- |-----|------|------|
600
- | `@codesyncer-rule` | 특별한 규칙 (일반적이지 않은 구현) | `// @codesyncer-rule: any 타입 허용 (외부 라이브러리 타입 없음)` |
601
- | `@codesyncer-inference` | AI가 추론한 내용과 근거 | `// @codesyncer-inference: 페이지 크기 20 (표준 UX)` |
602
- | `@codesyncer-decision` | 의논 후 결정 사항 | `// @codesyncer-decision: [2024-10-15] Stripe 사용 (해외 결제)` |
603
- | `@codesyncer-todo` | 사용자 확인 필요 | `// @codesyncer-todo: API 엔드포인트 URL 확인 필요` |
604
- | `@codesyncer-context` | 비즈니스 맥락 설명 | `// @codesyncer-context: GDPR 준수 (30일 보관)` |
605
-
606
- ### 레거시 호환성
607
-
608
- 기존 `@claude-*` 태그도 완벽 호환:
609
- ```typescript
610
- @claude-rule = @codesyncer-rule
611
- @claude-inference = @codesyncer-inference
612
- @claude-decision = @codesyncer-decision
613
- @claude-todo = @codesyncer-todo
614
- @claude-context = @codesyncer-context
615
- ```
79
+ **[→ 고급 사용법](./docs/ko/ADVANCED.md)**
616
80
 
617
81
  ---
618
82
 
619
- ## 🤝 자동 의논 시스템
620
-
621
- CodeSyncer는 중요한 키워드가 감지되면 자동으로 AI 작업을 일시 정지하여 비용이 많이 드는 실수를 방지합니다.
83
+ ### 🪝 Hooks
622
84
 
623
- ### 필수 의논 키워드 (자동 활성화)
85
+ 최적의 순간에 AI에게 자동 리마인드 ( 응답이 아닌):
624
86
 
625
- - **💰 결제 과금**: 결제, 구매, 입금, 환불, 구독, 과금
626
- - **🔐 인증 및 보안**: 인증, 로그인, 권한, 암호화, 토큰, jwt
627
- - **🗑️ 데이터 작업**: 삭제, 제거, 마이그레이션, 스키마 변경
628
- - **📜 개인정보 규정**: 개인정보, GDPR, 약관, 정책
87
+ | Hook | 시점 | 이유 |
88
+ |------|------|------|
89
+ | **SessionStart** | 세션 시작 | 규칙 번 주입 |
90
+ | **PreCompact** | 압축 | 규칙이 압축 후에도 유지 |
629
91
 
630
- ### 작동 방식
92
+ **CodeSyncer는 가장 효율적인 Hook 타이밍을 사용합니다.**
631
93
 
632
- 1. AI가 키워드 감지 (예: "결제")
633
- 2. **자동으로 작업 중단**
634
- 3. 추천안 + 대안 제시
635
- 4. 사용자 결정 대기
636
- 5. 결정 사항을 `DECISIONS.md` + 코드 주석에 기록
637
- 6. 작업 재개
94
+ **[→ Hooks 가이드](./docs/ko/HOOKS.md)**
638
95
 
639
96
  ---
640
97
 
641
- ## 🌍 다국어 지원
98
+ ## 지원 AI 도구
642
99
 
643
- CodeSyncer는 한글과 영문을 완벽 지원합니다:
644
- - 설치 안내 메시지
645
- - 생성되는 문서
646
- - 주석 가이드라인
647
- - 모든 UI 메시지
648
-
649
- 설치 중 언제든 언어를 변경하거나 언어별 명령어를 사용할 수 있습니다.
100
+ | 도구 | 상태 |
101
+ |------|------|
102
+ | **Claude Code** | ✅ 완벽 지원 |
103
+ | Cursor | 🚧 곧 지원 예정 |
104
+ | GitHub Copilot | 🚧 곧 지원 예정 |
650
105
 
651
106
  ---
652
107
 
653
- ## 🔧 기술 스택 자동 감지
108
+ ## 문서
654
109
 
655
- CodeSyncer는 프로젝트 타입과 기술 스택을 자동으로 감지합니다:
656
-
657
- **지원 언어/프레임워크:**
658
- - Java (Spring Boot)
659
- - 🐍 Python (Django, FastAPI)
660
- - 📘 TypeScript / JavaScript
661
- - ⚛️ React / Next.js
662
- - 🟢 Node.js / Express
663
- - 📱 React Native
664
-
665
- 다음 파일들을 스캔하여 자동 감지:
666
- - `package.json`, `pom.xml`, `build.gradle`, `requirements.txt`
667
- - 폴더 구조 및 의존성 목록
110
+ | 가이드 | 설명 |
111
+ |--------|------|
112
+ | **[설정 가이드](./docs/ko/SETUP.md)** | 설치, 설정, 업데이트 |
113
+ | **[태그 시스템](./docs/ko/TAGS.md)** | 모든 태그와 예시 |
114
+ | **[Hooks 가이드](./docs/ko/HOOKS.md)** | Hook 이벤트와 커스터마이징 |
115
+ | **[고급 사용법](./docs/ko/ADVANCED.md)** | Watch 모드, 자동 의논, 모노레포 |
116
+ | **[FAQ](./docs/ko/FAQ.md)** | 자주 묻는 질문 |
668
117
 
669
118
  ---
670
119
 
671
- ## 📖 사용 예시
672
-
673
- ### 시나리오: 결제 기능 추가
120
+ ## 명령어
674
121
 
675
122
  ```bash
676
- 사용자: "Stripe 결제 연동 추가해줘"
677
-
678
- AI: ⚠️ '결제' 키워드 감지. 의논이 필요합니다.
679
-
680
- 💡 추천안: Stripe 사용
681
-
682
- 🔄 대안:
683
- A. 아임포트 (한국 전용)
684
- B. Toss Payments
685
- C. 직접 구현
686
-
687
- 어떻게 진행할까요?
688
-
689
- 사용자: "진행"
690
-
691
- AI: ✅ 결정 사항 기록 중...
692
-
693
- 생성:
694
- - backend/src/services/PaymentService.ts
695
- /**
696
- * @codesyncer-decision: [2024-11-12] Stripe 사용 (해외 결제 지원)
697
- * @codesyncer-context: USD, EUR, KRW 지원
698
- */
699
-
700
- - frontend/src/components/PaymentForm.tsx
701
- - DECISIONS.md 업데이트
702
-
703
- ✅ 결제 연동 완료!
123
+ codesyncer init # 프로젝트 초기화
124
+ codesyncer update # 템플릿 업데이트
125
+ codesyncer validate # 설정 검증
126
+ codesyncer watch # 실시간 모니터링
127
+ codesyncer add-repo # 워크스페이스에 레포 추가
704
128
  ```
705
129
 
706
130
  ---
707
131
 
708
- ## 🎯 왜 CodeSyncer?
709
-
710
- ### CodeSyncer 사용 전 ❌
711
- - AI가 중요한 비즈니스 로직을 추측함
712
- - 결정 이유가 기록되지 않음
713
- - 레포 전환 시 컨텍스트 상실
714
- - 팀 전체에 일관성 없는 코딩 패턴
715
-
716
- ### CodeSyncer 사용 후 ✅
717
- - AI가 중요한 결정에서 일시 정지
718
- - 모든 결정 영구 기록
719
- - 매끄러운 멀티 레포 워크플로우
720
- - 일관된 협업 시스템
721
- - 신입 온보딩 시간 단축
722
-
723
- ---
724
-
725
- ## 🤖 지원 AI 도구
726
-
727
- ### ✅ 현재 지원
728
- - **Claude Code** (완벽 지원)
729
-
730
- ### 🚧 곧 지원 예정 (커뮤니티 기여 환영!)
731
- - Cursor
732
- - GitHub Copilot
733
- - Continue.dev
734
- - Codeium
735
-
736
- 선호하는 AI 도구 지원을 추가하고 싶으신가요? [여기서 기여하세요!](https://github.com/bitjaru/codesyncer/issues)
737
-
738
- ---
739
-
740
- ## 📁 프로젝트 구조
741
-
742
- `codesyncer init` 실행 후 프로젝트 구조:
743
-
744
- ### 단일 레포지토리 모드
745
-
746
- ```
747
- my-project/
748
- ├── CLAUDE.md # Claude가 먼저 읽는 파일
749
- └── .claude/
750
- ├── CLAUDE.md # 코딩 가이드라인
751
- ├── COMMENT_GUIDE.md # 태그 사용 가이드
752
- ├── ARCHITECTURE.md # 프로젝트 구조
753
- ├── DECISIONS.md # 의사결정 기록
754
- └── settings.json # Hooks 설정 (v3.2.0+, 선택)
755
- ```
756
-
757
- ### 멀티 레포지토리 모드
758
-
759
- ```
760
- workspace/
761
- ├── CLAUDE.md # Claude가 먼저 읽는 파일
762
- ├── .codesyncer/
763
- │ └── MASTER_CODESYNCER.md # 멀티 레포 자동 전환 가이드
764
- ├── backend/
765
- │ └── .claude/
766
- │ ├── CLAUDE.md # 코딩 가이드라인
767
- │ ├── COMMENT_GUIDE.md # 태그 사용 가이드
768
- │ ├── ARCHITECTURE.md # 프로젝트 구조
769
- │ └── DECISIONS.md # 의사결정 기록
770
- ├── frontend/
771
- │ └── .claude/
772
- │ └── (동일한 파일들)
773
- └── mobile/
774
- └── .claude/
775
- └── (동일한 파일들)
776
- ```
777
-
778
- ### 모노레포 모드 (v2.4.0 신규)
132
+ ## 기여하기
779
133
 
780
- ```
781
- monorepo/
782
- ├── CLAUDE.md # Claude가 먼저 읽는 파일
783
- ├── .codesyncer/
784
- │ └── MASTER_CODESYNCER.md # 패키지 네비게이션 가이드
785
- ├── packages/
786
- │ ├── shared/
787
- │ │ └── .claude/
788
- │ │ └── (동일한 파일들)
789
- │ └── ui/
790
- │ └── .claude/
791
- │ └── (동일한 파일들)
792
- └── apps/
793
- ├── web/
794
- │ └── .claude/
795
- │ └── (동일한 파일들)
796
- └── api/
797
- └── .claude/
798
- └── (동일한 파일들)
799
- ```
134
+ 기여를 환영합니다! [CONTRIBUTING.md](./CONTRIBUTING.md) 참조
800
135
 
801
- **지원하는 모노레포 도구:**
802
- - Turborepo (`turbo.json`)
803
- - pnpm (`pnpm-workspace.yaml`)
804
- - Nx (`nx.json`)
805
- - ✅ Lerna (`lerna.json`)
806
- - ✅ npm/Yarn workspaces (`package.json`의 `workspaces` 필드)
807
- - ✅ Rush (`rush.json`)
136
+ **우선순위:**
137
+ - 🤖 많은 AI 도구 지원
138
+ - 🌐 추가 언어 번역
139
+ - 📦 많은 기술 스택 템플릿
808
140
 
809
141
  ---
810
142
 
811
- ## 🛠️ 고급 사용법
812
-
813
- ### 커스텀 키워드
143
+ ## 후원
814
144
 
815
- 전문가 설치 모드에서 커스텀 키워드 추가 가능:
145
+ CodeSyncer가 도움이 되셨다면:
146
+ - ⭐ Star
147
+ - 🐦 트위터 공유
816
148
 
817
- ```bash
818
- codesyncer init --mode expert
149
+ **이더리움 (ETH):**
819
150
  ```
820
-
821
- "커스텀 키워드 추가" 선택 후 다음 지정:
822
- - 감지할 키워드
823
- - 중요도 (CRITICAL/IMPORTANT/MINOR)
824
- - 설명
825
-
826
- ### 기존 프로젝트 업데이트
827
-
828
- `codesyncer update` 실행하여:
829
- - `ARCHITECTURE.md`의 프로젝트 구조 갱신
830
- - 주석 태그 통계 업데이트
831
- - 파일 구조 재스캔
832
-
833
- ---
834
-
835
- ## 🔍 태그 검색
836
-
837
- 코드베이스에서 모든 태그 찾기:
838
-
839
- ```bash
840
- # 모든 추론
841
- grep -r "@codesyncer-inference" ./src
842
-
843
- # 모든 TODO
844
- grep -r "@codesyncer-todo" ./src
845
-
846
- # 모든 결정 사항
847
- grep -r "@codesyncer-decision" ./src
151
+ 0x0a12177c448778a37Fa4EeA57d33D06713F200De
848
152
  ```
849
153
 
850
154
  ---
851
155
 
852
- ## 🤝 기여하기
853
-
854
- 기여를 환영합니다! CodeSyncer는 오픈소스이며 커뮤니티 중심입니다.
855
-
856
- ### 🚀 기여자를 위한 빠른 시작
857
-
858
- 1. **Fork** 이 레포지토리를 Fork 하세요
859
- 2. **Clone** Fork한 레포를 클론: `git clone https://github.com/YOUR_USERNAME/codesyncer.git`
860
- 3. **브랜치 생성**: `git checkout -b feature/amazing-feature`
861
- 4. **변경사항 작성** 후 커밋: `git commit -m "feat: 멋진 기능 추가"`
862
- 5. **Push** Fork에 푸시: `git push origin feature/amazing-feature`
863
- 6. GitHub에서 **Pull Request 생성**
864
-
865
- ### 🎯 우선순위 높은 기여 분야
866
-
867
- - 🤖 **더 많은 AI 도구 지원 추가** (Cursor, Copilot, Continue.dev)
868
- - 🌐 **추가 언어 번역** (일본어, 중국어, 스페인어)
869
- - 📦 **더 많은 기술 스택 템플릿** (Go, Rust, Ruby, PHP)
870
- - 📝 **문서 개선**
871
- - 🐛 **버그 수정**
872
-
873
- ### 📖 가이드라인
874
-
875
- 자세한 기여 가이드는 [CONTRIBUTING.md](./CONTRIBUTING.md)를 참조하세요.
876
-
877
- ### 💬 질문이 있으신가요?
878
-
879
- - 📝 [Issue](https://github.com/bitjaru/codesyncer/issues)를 열어주세요
880
- - 💡 [Discussion](https://github.com/bitjaru/codesyncer/discussions)을 시작하세요
881
-
882
- ---
883
-
884
- ## 📝 라이선스
885
-
886
- **Commons Clause License + MIT**
887
-
888
- - ✅ **개인 및 비상업적 용도로 무료 사용** 가능
889
- - ✅ **코드 포크 및 수정** 자유롭게 가능
890
- - ✅ **프로젝트 기여** 환영
891
- - ❌ **판매 및 유료 서비스 제공** 불가
892
-
893
- 자세한 내용은 [LICENSE](./LICENSE) 파일을 참조하세요.
894
-
895
- **왜 Commons Clause?**
896
- CodeSyncer가 모든 개발자에게 무료로 제공되면서도 상업적 착취를 방지하기 위함입니다. 상업적 라이선스가 필요한 경우 문의해주세요.
897
-
898
- ---
899
-
900
- ## 🙋 자주 묻는 질문
901
-
902
- **Q: Claude Code에서만 작동하나요?**
903
- A: 현재는 그렇습니다. 하지만 Cursor, GitHub Copilot 등 다른 도구 지원을 개발 중입니다. 기여 환영!
904
-
905
- **Q: 단일 레포에서도 사용할 수 있나요?**
906
- A: 네! CodeSyncer는 자동으로 단일 레포인지 감지합니다 (`package.json`, `.git` 등 존재 여부 확인). 단일 레포에서는 `.claude/SETUP_GUIDE.md`가 생성되고, 멀티 레포 구조 대신 간단한 구조로 설정됩니다.
907
-
908
- **Q: 모노레포(Turborepo, pnpm, Nx, Lerna)에서 작동하나요?**
909
- A: 네! v2.4.0부터 CodeSyncer는 모노레포 설정(`turbo.json`, `pnpm-workspace.yaml`, `nx.json`, `lerna.json` 또는 `package.json`의 workspaces)을 자동으로 감지하고 워크스페이스 패턴의 모든 패키지를 스캔합니다.
156
+ ## 라이선스
910
157
 
911
- **Q: AI 응답 속도가 느려지나요?**
912
- A: 아니요. CodeSyncer는 AI가 세션당 한 번만 읽는 문서 파일만 추가합니다. 오히려 사전에 컨텍스트를 제공하여 AI를 더 효율적으로 만듭니다.
913
-
914
- **Q: 키워드 감지를 커스터마이징할 수 있나요?**
915
- A: 네, 전문가 설치 모드를 사용하여 어떤 키워드가 의논을 트리거할지 완전히 커스터마이징할 수 있습니다.
916
-
917
- **Q: 제 코드/데이터가 어디론가 전송되나요?**
918
- A: 아니요. CodeSyncer는 순전히 로컬 CLI 도구로, 레포에 문서 파일만 생성합니다. 외부 서버로 아무것도 전송되지 않습니다.
158
+ **Commons Clause + MIT** - 개인/비상업적 무료 사용. [LICENSE](./LICENSE) 참조
919
159
 
920
160
  ---
921
161
 
922
- ## 🌟 지원하기
923
-
924
- CodeSyncer가 팀에 도움이 되셨다면:
925
- - ⭐ 이 레포에 Star
926
- - 🐦 트위터에 공유
927
- - 📝 사용 경험 공유
928
- - 🤝 개선 사항 기여
162
+ ## 연락처
929
163
 
930
- ### 💰 개발 후원
931
-
932
- CodeSyncer 개발을 지원하고 싶으시다면 암호화폐로 후원해주실 수 있습니다:
933
-
934
- **이더리움 (ETH) / ERC-20 토큰:**
935
- ```
936
- 0x0a12177c448778a37Fa4EeA57d33D06713F200De
937
- ```
938
-
939
- 여러분의 후원은 CodeSyncer를 유지하고 개선하는 데 큰 도움이 됩니다! 🙏
940
-
941
- ---
942
-
943
- ## 📮 연락처
944
-
945
- - **이슈**: [GitHub Issues](https://github.com/bitjaru/codesyncer/issues)
946
- - **토론**: [GitHub Discussions](https://github.com/bitjaru/codesyncer/discussions)
164
+ - [GitHub Issues](https://github.com/bitjaru/codesyncer/issues)
165
+ - [GitHub Discussions](https://github.com/bitjaru/codesyncer/discussions)
947
166
 
948
167
  ---
949
168
 
950
169
  **CodeSyncer 커뮤니티가 ❤️로 만들었습니다**
951
-
952
- *한 번에 하나씩, AI 협업을 매끄럽게 만들어갑니다.*