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