codesyncer 2.1.1 → 2.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,iBA8FzD"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAY,MAAM,UAAU,CAAC;AAGnD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,iBA4KzD"}
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.updateCommand = updateCommand;
40
40
  const chalk_1 = __importDefault(require("chalk"));
41
41
  const ora_1 = __importDefault(require("ora"));
42
+ const inquirer_1 = __importDefault(require("inquirer"));
42
43
  const fs = __importStar(require("fs-extra"));
43
44
  const path = __importStar(require("path"));
44
45
  const scanner_1 = require("../utils/scanner");
@@ -51,6 +52,18 @@ async function updateCommand(options) {
51
52
  console.log(chalk_1.default.gray('Run `codesyncer init` first.\n'));
52
53
  return;
53
54
  }
55
+ // Detect language from existing SETUP_GUIDE
56
+ let lang = 'en';
57
+ const setupGuidePath = path.join(currentDir, '.codesyncer', 'SETUP_GUIDE.md');
58
+ try {
59
+ const setupGuide = await fs.readFile(setupGuidePath, 'utf-8');
60
+ if (setupGuide.includes('한국어') || setupGuide.includes('레포지토리')) {
61
+ lang = 'ko';
62
+ }
63
+ }
64
+ catch {
65
+ // Default to English
66
+ }
54
67
  const spinner = (0, ora_1.default)('Scanning for changes...').start();
55
68
  // Scan for repositories
56
69
  const foundRepos = await (0, scanner_1.scanForRepositories)(currentDir);
@@ -114,6 +127,64 @@ async function updateCommand(options) {
114
127
  catch (error) {
115
128
  updateSpinner.fail('Failed to update WORKSPACE_MAP.md');
116
129
  }
130
+ // Check if root CLAUDE.md exists
131
+ const rootClaudePath = path.join(currentDir, 'CLAUDE.md');
132
+ const hasRootClaude = await fs.pathExists(rootClaudePath);
133
+ if (!hasRootClaude) {
134
+ console.log(chalk_1.default.bold.yellow('\n⚠️ Missing root CLAUDE.md (new in v2.1.2)\n'));
135
+ console.log(chalk_1.default.gray('This file allows Claude to automatically load context at session start.\n'));
136
+ const { createRootClaude } = await inquirer_1.default.prompt([
137
+ {
138
+ type: 'confirm',
139
+ name: 'createRootClaude',
140
+ message: lang === 'ko' ? '루트 CLAUDE.md를 생성할까요?' : 'Create root CLAUDE.md?',
141
+ default: true,
142
+ },
143
+ ]);
144
+ if (createRootClaude) {
145
+ const spinner = (0, ora_1.default)(lang === 'ko' ? '루트 CLAUDE.md 생성 중...' : 'Creating root CLAUDE.md...').start();
146
+ try {
147
+ // Read template
148
+ const templatePath = path.join(__dirname, '..', 'templates', lang, 'root_claude.md');
149
+ let template = await fs.readFile(templatePath, 'utf-8');
150
+ // Extract project info from existing MASTER_CODESYNCER.md
151
+ const masterPath = path.join(currentDir, '.codesyncer', 'MASTER_CODESYNCER.md');
152
+ let projectName = path.basename(currentDir);
153
+ let githubUsername = 'your-username';
154
+ try {
155
+ const masterContent = await fs.readFile(masterPath, 'utf-8');
156
+ const nameMatch = masterContent.match(/프로젝트[:\s]*([^\n]+)|Project[:\s]*([^\n]+)/i);
157
+ const githubMatch = masterContent.match(/github\.com\/([^/\s]+)/i);
158
+ if (nameMatch)
159
+ projectName = (nameMatch[1] || nameMatch[2]).trim();
160
+ if (githubMatch)
161
+ githubUsername = githubMatch[1];
162
+ }
163
+ catch {
164
+ // Use defaults
165
+ }
166
+ const repoCount = foundRepos.length;
167
+ const today = new Date().toISOString().split('T')[0];
168
+ // Replace placeholders
169
+ template = template
170
+ .replace(/\[PROJECT_NAME\]/g, projectName)
171
+ .replace(/\[GITHUB_USERNAME\]/g, githubUsername)
172
+ .replace(/\[TODAY\]/g, today)
173
+ .replace(/\[REPO_COUNT\]/g, String(repoCount));
174
+ // Write root CLAUDE.md
175
+ await fs.writeFile(rootClaudePath, template, 'utf-8');
176
+ spinner.succeed(lang === 'ko' ? '루트 CLAUDE.md 생성 완료!' : 'Root CLAUDE.md created!');
177
+ console.log(chalk_1.default.green(` ✓ ${rootClaudePath}\n`));
178
+ console.log(chalk_1.default.cyan(lang === 'ko'
179
+ ? '💡 이제 Claude가 세션 시작 시 자동으로 컨텍스트를 로드합니다!'
180
+ : '💡 Claude will now automatically load context at session start!\n'));
181
+ }
182
+ catch (error) {
183
+ spinner.fail(lang === 'ko' ? '루트 CLAUDE.md 생성 실패' : 'Failed to create root CLAUDE.md');
184
+ console.error(chalk_1.default.red(`Error: ${error}\n`));
185
+ }
186
+ }
187
+ }
117
188
  console.log(chalk_1.default.bold.green('\n✅ Update complete!\n'));
118
189
  if (newRepos.length > 0) {
119
190
  console.log(chalk_1.default.bold('📝 Next steps:\n'));
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ # CLAUDE.md - [PROJECT_NAME] Multi-Repo Project
2
+
3
+ > **🎯 This is a Multi-Repository Workspace**
4
+ >
5
+ > Each repository is an independent project, working together collaboratively.
6
+
7
+ ---
8
+
9
+ ## 📋 First Thing to Do
10
+
11
+ **If you've read this file, immediately read the following file:**
12
+
13
+ ```
14
+ .codesyncer/MASTER_CODESYNCER.md
15
+ ```
16
+
17
+ → This file contains **all repository information**, **auto-switching rules**, and **keyword mappings**.
18
+
19
+ ---
20
+
21
+ ## 🏗️ Project Overview
22
+
23
+ - **Project Name**: [PROJECT_NAME]
24
+ - **GitHub**: https://github.com/[GITHUB_USERNAME]/[PROJECT_NAME]
25
+ - **Created**: [TODAY]
26
+ - **Repositories**: [REPO_COUNT]
27
+
28
+ ---
29
+
30
+ ## 🗂️ Repository Structure
31
+
32
+ ```
33
+ [PROJECT_NAME]/
34
+ ├── CLAUDE.md (current file)
35
+ ├── .codesyncer/
36
+ │ └── MASTER_CODESYNCER.md ⭐ Multi-repo navigation
37
+
38
+ ├── [repo1]/
39
+ │ └── .claude/
40
+ │ └── CLAUDE.md (individual repo rules)
41
+
42
+ ├── [repo2]/
43
+ │ └── .claude/
44
+ │ └── CLAUDE.md (individual repo rules)
45
+
46
+ └── ...
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 🚨 Important Rules
52
+
53
+ ### 1. Check Repository Before Working
54
+ Always verify which repository you're working in:
55
+ ```bash
56
+ pwd # Check current directory
57
+ ```
58
+
59
+ ### 2. Read CLAUDE.md When Switching Repos
60
+ Every time you work in a new repo:
61
+ ```
62
+ "Read [repo-name]/.claude/CLAUDE.md"
63
+ ```
64
+
65
+ ### 3. No Work in Root Directory
66
+ Never code in root directory. Always navigate to specific repo before working.
67
+
68
+ ---
69
+
70
+ ## 🔄 Multi-Repo Workflow
71
+
72
+ ### Scenario 1: User Specifies Specific Repo
73
+ ```
74
+ User: "Add login API to backend"
75
+
76
+ 1. Check MASTER_CODESYNCER.md for "backend" keyword → find api-server repo
77
+ 2. Read api-server/.claude/CLAUDE.md
78
+ 3. Work in api-server
79
+ ```
80
+
81
+ ### Scenario 2: Multiple Repos Need Changes
82
+ ```
83
+ User: "Add order feature"
84
+
85
+ 1. "Order feature requires both backend (API) and frontend (UI). Proceed?"
86
+ 2. After user confirmation
87
+ 3. Work on API in api-server → report completion
88
+ 4. Work on UI in web-client → report completion
89
+ ```
90
+
91
+ ### Scenario 3: Unclear Which Repo
92
+ ```
93
+ 1. Check keyword mapping in MASTER_CODESYNCER.md
94
+ 2. If unclear, ask user
95
+ "Which repo should I work in?"
96
+ - A) api-server (backend)
97
+ - B) web-client (frontend)
98
+ - C) mobile-app (mobile)
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 📝 Project-Wide Common Rules
104
+
105
+ The following rules apply to **all repositories**:
106
+
107
+ ### Coding Standards
108
+ - ✅ Use TypeScript strict mode
109
+ - ✅ Explicit type definitions required
110
+ - ✅ Prefer functional programming
111
+ - ✅ Document all functions/components
112
+ - ✅ Error handling required
113
+
114
+ ### Comment Tag System
115
+ Use the same tags across all repos:
116
+ ```typescript
117
+ @codesyncer-rule // Special rules
118
+ @codesyncer-inference // Inference with reasoning
119
+ @codesyncer-decision // Decisions after discussion
120
+ @codesyncer-todo // User confirmation needed
121
+ @codesyncer-context // Business context explanation
122
+ ```
123
+
124
+ Details: `.claude/COMMENT_GUIDE.md` in each repo
125
+
126
+ ### No-Inference Zones
127
+ **Never infer, always ask the user:**
128
+ - 💰 Business logic numbers (prices, fees, limits, discounts)
129
+ - 🔌 API endpoint URLs
130
+ - 🔐 Security settings (token expiry, encryption methods)
131
+ - 🗄️ Database schema
132
+ - 🌐 External service integration details
133
+
134
+ ### Discussion-Required Keywords
135
+ When these keywords are detected, **stop work automatically** and discuss with user:
136
+ - 🔴 **CRITICAL**: payment, billing, auth, permission, delete, personal data, GDPR
137
+ - 🟡 **IMPORTANT**: API integration, DB schema, deployment, caching, email
138
+ - 🟢 **MINOR**: optimization, testing, logging, UI/UX
139
+
140
+ Full keyword list: `.codesyncer/MASTER_CODESYNCER.md`
141
+
142
+ ---
143
+
144
+ ## 🎯 Session Start Checklist
145
+
146
+ When AI reads this file:
147
+
148
+ 1. ✅ Immediately read `.codesyncer/MASTER_CODESYNCER.md`
149
+ 2. ✅ Understand overall repository structure
150
+ 3. ✅ Check keyword mappings
151
+ 4. ✅ Output ready message:
152
+
153
+ ```
154
+ ✅ [PROJECT_NAME] multi-repo project ready!
155
+
156
+ 📁 Repositories: [REPO_COUNT]
157
+ 📋 Read MASTER_CODESYNCER.md
158
+ 🎯 Ready to work
159
+
160
+ Which repo should we work in?
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 💡 Useful Commands
166
+
167
+ ### Navigation
168
+ ```
169
+ "Show repo list" → List repos from MASTER_CODESYNCER.md
170
+ "Go to backend" → Read api-server/.claude/CLAUDE.md
171
+ "Switch to frontend" → Read web-client/.claude/CLAUDE.md
172
+ ```
173
+
174
+ ### Document Updates
175
+ ```
176
+ "Update all structures" → Refresh all ARCHITECTURE.md files
177
+ "Check decision log" → Review DECISIONS.md in each repo
178
+ ```
179
+
180
+ ### Multi-Repo Tasks
181
+ ```
182
+ "Add ESLint to all repos" → Work sequentially on each repo
183
+ "Need common type defs" → Discuss where to place them
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 📚 Related Documents
189
+
190
+ ### Root Documents
191
+ - **Multi-repo Navigation**: `.codesyncer/MASTER_CODESYNCER.md` ⭐ **Required**
192
+ - **Setup Guide**: `.codesyncer/SETUP_GUIDE.md` (Reference after AI setup)
193
+
194
+ ### Individual Repo Documents
195
+ In each repo's `.claude/` folder:
196
+ - **CLAUDE.md** - Repo-specific coding rules
197
+ - **ARCHITECTURE.md** - Project structure
198
+ - **COMMENT_GUIDE.md** - Comment writing guide
199
+ - **DECISIONS.md** - Discussion decision log
200
+
201
+ ---
202
+
203
+ ## 🔍 Search Comments (Entire Project)
204
+
205
+ ```bash
206
+ # Find all TODOs across repos
207
+ grep -r "@codesyncer-todo" ./*/.claude/
208
+
209
+ # Find all decision records
210
+ grep -r "@codesyncer-decision" ./*/
211
+
212
+ # Search for specific keyword
213
+ grep -r "payment" ./*/
214
+ ```
215
+
216
+ ---
217
+
218
+ ## ⚠️ Important Notes
219
+
220
+ 1. **Context Switch When Changing Repos**
221
+ - Each repo may have independent rules
222
+ - Always check that repo's CLAUDE.md
223
+
224
+ 2. **Cross-Repo Dependencies**
225
+ - Discuss changes affecting multiple repos with user
226
+ - Explain clearly when order matters
227
+
228
+ 3. **Common Code Management**
229
+ - Discuss location for shared types, utilities
230
+ - Establish duplication prevention strategy
231
+
232
+ ---
233
+
234
+ **Version**: 1.0.0 (Powered by CodeSyncer)
235
+ **AI Tools**: Optimized for Claude Code | Compatible: Cursor, GitHub Copilot, Continue.dev
236
+
237
+ ---
238
+
239
+ *CodeSyncer is open source: https://github.com/bitjaru/codesyncer*
@@ -158,20 +158,35 @@ Use template: `./templates/[lang]/decisions.md`
158
158
 
159
159
  ---
160
160
 
161
- ## 🌐 Step 4: Generate Master Document
161
+ ## 🌐 Step 4: Generate Root Documents
162
162
 
163
- At the workspace root, create `.codesyncer/MASTER_CODESYNCER.md`:
163
+ Create the following files at the workspace root:
164
164
 
165
- ### Content:
166
- - List all repositories with their roles
167
- - Automatic repository switching rules
168
- - Keyword-based navigation mapping
169
- - Multi-repo workflow examples
165
+ ### 4.1 CLAUDE.md ⭐ **Claude Reads This First**
166
+
167
+ Create `CLAUDE.md` at root (automatically discovered by Claude):
168
+
169
+ Use template: `./templates/[lang]/root_claude.md`
170
+ - Replace [PROJECT_NAME], [GITHUB_USERNAME], [TODAY]
171
+ - Replace [REPO_COUNT] with actual repository count
172
+ - Indicate this is a multi-repo project
173
+ - Instruct to read MASTER_CODESYNCER.md first
174
+ - Specify project-wide common rules
175
+
176
+ **Important**: This file must exist for Claude to automatically load context at session start!
177
+
178
+ ### 4.2 .codesyncer/MASTER_CODESYNCER.md
179
+
180
+ Create `.codesyncer/MASTER_CODESYNCER.md` at workspace root:
170
181
 
171
182
  Use template: `./templates/[lang]/master.md`
172
183
  - Replace [REPO_TABLE] with actual detected repos
173
184
  - Replace [KEYWORD_MAPPING] with repo-specific keywords
174
185
  - Replace [PROJECT_NAME], [GITHUB_USERNAME]
186
+ - List all repositories with their roles
187
+ - Automatic repository switching rules
188
+ - Keyword-based navigation mapping
189
+ - Multi-repo workflow examples
175
190
 
176
191
  ---
177
192
 
@@ -183,8 +198,10 @@ After generating all files, present a summary:
183
198
  ✅ CodeSyncer Setup Complete!
184
199
 
185
200
  Created files:
186
- 📁 .codesyncer/
187
- └── MASTER_CODESYNCER.md
201
+ 📁 Root/
202
+ ├── CLAUDE.md ⭐ Claude reads this first
203
+ └── .codesyncer/
204
+ └── MASTER_CODESYNCER.md
188
205
 
189
206
  📁 [repo1]/.claude/
190
207
  ├── CLAUDE.md
@@ -197,8 +214,10 @@ Created files:
197
214
 
198
215
  Next Steps:
199
216
  1. Review the generated files
200
- 2. Customize any project-specific rules in CLAUDE.md
201
- 3. Start developing with: "Read CLAUDE.md" in each repo
217
+ 2. Customize each repo's CLAUDE.md
218
+ 3. Read root CLAUDE.md or individual repo CLAUDE.md to start development
219
+
220
+ 💡 Claude automatically finds and reads root CLAUDE.md!
202
221
 
203
222
  Ready to start using CodeSyncer!
204
223
  ```
@@ -0,0 +1,239 @@
1
+ # CLAUDE.md - [PROJECT_NAME] 멀티레포 프로젝트
2
+
3
+ > **🎯 이것은 멀티레포 워크스페이스입니다**
4
+ >
5
+ > 각 레포지토리는 독립적인 프로젝트이며, 함께 협업합니다.
6
+
7
+ ---
8
+
9
+ ## 📋 첫 번째 할 일
10
+
11
+ **이 파일을 읽었다면, 다음 파일을 즉시 읽어주세요:**
12
+
13
+ ```
14
+ .codesyncer/MASTER_CODESYNCER.md
15
+ ```
16
+
17
+ → 이 파일에 **모든 레포지토리 정보**, **자동 전환 규칙**, **키워드 매핑**이 있습니다.
18
+
19
+ ---
20
+
21
+ ## 🏗️ 프로젝트 개요
22
+
23
+ - **프로젝트명**: [PROJECT_NAME]
24
+ - **GitHub**: https://github.com/[GITHUB_USERNAME]/[PROJECT_NAME]
25
+ - **생성일**: [TODAY]
26
+ - **레포지토리 수**: [REPO_COUNT]개
27
+
28
+ ---
29
+
30
+ ## 🗂️ 레포지토리 구조
31
+
32
+ ```
33
+ [PROJECT_NAME]/
34
+ ├── CLAUDE.md (지금 읽는 파일)
35
+ ├── .codesyncer/
36
+ │ └── MASTER_CODESYNCER.md ⭐ 멀티레포 네비게이션
37
+
38
+ ├── [repo1]/
39
+ │ └── .claude/
40
+ │ └── CLAUDE.md (개별 레포 규칙)
41
+
42
+ ├── [repo2]/
43
+ │ └── .claude/
44
+ │ └── CLAUDE.md (개별 레포 규칙)
45
+
46
+ └── ...
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 🚨 중요 규칙
52
+
53
+ ### 1. 작업 전 레포지토리 확인
54
+ 항상 현재 어느 레포에서 작업하는지 확인하세요:
55
+ ```bash
56
+ pwd # 현재 디렉토리 확인
57
+ ```
58
+
59
+ ### 2. 레포 전환 시 CLAUDE.md 읽기
60
+ 새로운 레포에서 작업할 때마다:
61
+ ```
62
+ "[repo-name]/.claude/CLAUDE.md 읽어줘"
63
+ ```
64
+
65
+ ### 3. 루트에서는 작업 금지
66
+ 루트 디렉토리에서 코드 작업 금지. 항상 특정 레포로 이동 후 작업.
67
+
68
+ ---
69
+
70
+ ## 🔄 멀티레포 작업 흐름
71
+
72
+ ### 시나리오 1: 사용자가 특정 레포 명시
73
+ ```
74
+ 사용자: "백엔드에 로그인 API 추가해줘"
75
+
76
+ 1. MASTER_CODESYNCER.md에서 "백엔드" 키워드 → api-server 레포 확인
77
+ 2. api-server/.claude/CLAUDE.md 읽기
78
+ 3. api-server에서 작업
79
+ ```
80
+
81
+ ### 시나리오 2: 여러 레포 수정 필요
82
+ ```
83
+ 사용자: "주문 기능 추가해줘"
84
+
85
+ 1. "주문 기능은 백엔드(API)와 프론트엔드(UI) 둘 다 필요합니다. 진행할까요?"
86
+ 2. 사용자 확인 후
87
+ 3. api-server에서 API 작업 → 완료 보고
88
+ 4. web-client에서 UI 작업 → 완료 보고
89
+ ```
90
+
91
+ ### 시나리오 3: 어느 레포인지 모를 때
92
+ ```
93
+ 1. MASTER_CODESYNCER.md의 키워드 매핑 확인
94
+ 2. 불명확하면 사용자에게 질문
95
+ "어느 레포에서 작업할까요?"
96
+ - A) api-server (백엔드)
97
+ - B) web-client (프론트엔드)
98
+ - C) mobile-app (모바일)
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 📝 전체 프로젝트 공통 규칙
104
+
105
+ 다음 규칙은 **모든 레포지토리에 공통 적용**:
106
+
107
+ ### 코딩 표준
108
+ - ✅ TypeScript strict mode 사용
109
+ - ✅ 명시적 타입 정의 필수
110
+ - ✅ 함수형 프로그래밍 우선
111
+ - ✅ 모든 함수/컴포넌트에 주석 작성
112
+ - ✅ 에러 핸들링 필수
113
+
114
+ ### 주석 태그 시스템
115
+ 모든 레포에서 동일한 태그 사용:
116
+ ```typescript
117
+ @codesyncer-rule // 특별 규칙
118
+ @codesyncer-inference // 추론 내용과 근거
119
+ @codesyncer-decision // 의논 후 결정 사항
120
+ @codesyncer-todo // 사용자 확인 필요
121
+ @codesyncer-context // 비즈니스 맥락 설명
122
+ ```
123
+
124
+ 자세한 내용: 각 레포의 `.claude/COMMENT_GUIDE.md`
125
+
126
+ ### 추론 금지 영역
127
+ **절대 추론하지 말고 사용자에게 물어보세요:**
128
+ - 💰 비즈니스 로직 수치 (가격, 수수료, 한도, 할인율)
129
+ - 🔌 API 엔드포인트 URL
130
+ - 🔐 보안 설정 (토큰 만료 시간, 암호화 방식)
131
+ - 🗄️ 데이터베이스 스키마
132
+ - 🌐 외부 서비스 연동 정보
133
+
134
+ ### 의논 필수 키워드
135
+ 다음 키워드 감지 시 **자동으로 작업 중단** 후 사용자와 의논:
136
+ - 🔴 **CRITICAL**: 결제, 과금, 인증, 권한, 삭제, 개인정보, GDPR
137
+ - 🟡 **IMPORTANT**: API 연동, DB 스키마, 배포, 캐싱, 이메일
138
+ - 🟢 **MINOR**: 최적화, 테스트, 로깅, UI/UX
139
+
140
+ 자세한 키워드 목록: `.codesyncer/MASTER_CODESYNCER.md`
141
+
142
+ ---
143
+
144
+ ## 🎯 세션 시작 체크리스트
145
+
146
+ AI가 이 파일을 읽으면:
147
+
148
+ 1. ✅ `.codesyncer/MASTER_CODESYNCER.md` 즉시 읽기
149
+ 2. ✅ 전체 레포지토리 구조 파악
150
+ 3. ✅ 키워드 매핑 확인
151
+ 4. ✅ 준비 완료 메시지 출력:
152
+
153
+ ```
154
+ ✅ [PROJECT_NAME] 멀티레포 프로젝트 준비 완료!
155
+
156
+ 📁 레포지토리: [REPO_COUNT]개
157
+ 📋 MASTER_CODESYNCER.md 읽음
158
+ 🎯 작업 가능 상태
159
+
160
+ 어느 레포에서 작업할까요?
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 💡 유용한 명령어
166
+
167
+ ### 네비게이션
168
+ ```
169
+ "레포 목록 보여줘" → MASTER_CODESYNCER.md 기반 레포 나열
170
+ "백엔드로 이동" → api-server/.claude/CLAUDE.md 읽기
171
+ "프론트엔드로 전환" → web-client/.claude/CLAUDE.md 읽기
172
+ ```
173
+
174
+ ### 문서 업데이트
175
+ ```
176
+ "전체 구조 업데이트" → 모든 레포 ARCHITECTURE.md 갱신
177
+ "의논 기록 확인" → 각 레포의 DECISIONS.md 확인
178
+ ```
179
+
180
+ ### 멀티레포 작업
181
+ ```
182
+ "모든 레포에 ESLint 설정" → 순차적으로 각 레포 작업
183
+ "공통 타입 정의 필요" → 어느 레포에 둘지 의논
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 📚 관련 문서
189
+
190
+ ### 루트 문서
191
+ - **멀티레포 네비게이션**: `.codesyncer/MASTER_CODESYNCER.md` ⭐ **필수**
192
+ - **설정 가이드**: `.codesyncer/SETUP_GUIDE.md` (AI 설정 완료 후 참고용)
193
+
194
+ ### 개별 레포 문서
195
+ 각 레포의 `.claude/` 폴더:
196
+ - **CLAUDE.md** - 레포별 코딩 규칙
197
+ - **ARCHITECTURE.md** - 프로젝트 구조
198
+ - **COMMENT_GUIDE.md** - 주석 작성 가이드
199
+ - **DECISIONS.md** - 의논 결정 기록
200
+
201
+ ---
202
+
203
+ ## 🔍 주석 검색 (전체 프로젝트)
204
+
205
+ ```bash
206
+ # 모든 레포에서 TODO 찾기
207
+ grep -r "@codesyncer-todo" ./*/.claude/
208
+
209
+ # 모든 의논 결정 찾기
210
+ grep -r "@codesyncer-decision" ./*/
211
+
212
+ # 특정 키워드 찾기
213
+ grep -r "결제" ./*/
214
+ ```
215
+
216
+ ---
217
+
218
+ ## ⚠️ 주의사항
219
+
220
+ 1. **레포 전환 시 컨텍스트 전환**
221
+ - 각 레포는 독립적인 규칙을 가질 수 있음
222
+ - 반드시 해당 레포의 CLAUDE.md 확인
223
+
224
+ 2. **크로스 레포 의존성**
225
+ - 여러 레포에 영향 주는 변경은 사용자와 의논
226
+ - 순서가 중요한 경우 명확히 설명
227
+
228
+ 3. **공통 코드 관리**
229
+ - 타입 정의, 유틸 함수 등 공통 코드 위치 의논
230
+ - 중복 방지 전략 수립
231
+
232
+ ---
233
+
234
+ **버전**: 1.0.0 (Powered by CodeSyncer)
235
+ **AI 도구**: Claude Code 최적화 | 호환: Cursor, GitHub Copilot, Continue.dev
236
+
237
+ ---
238
+
239
+ *CodeSyncer는 오픈소스입니다: https://github.com/bitjaru/codesyncer*
@@ -158,20 +158,35 @@
158
158
 
159
159
  ---
160
160
 
161
- ## 🌐 4단계: 마스터 문서 생성
161
+ ## 🌐 4단계: 루트 문서 생성
162
162
 
163
- 워크스페이스 루트에 `.codesyncer/MASTER_CODESYNCER.md` 생성:
163
+ 워크스페이스 루트에 다음 파일들을 생성:
164
164
 
165
- ### 내용:
166
- - 모든 레포지토리와 역할 나열
167
- - 자동 레포지토리 전환 규칙
168
- - 키워드 기반 네비게이션 매핑
169
- - 멀티 레포 워크플로우 예시
165
+ ### 4.1 CLAUDE.md ⭐ **클로드가 먼저 읽는 파일**
166
+
167
+ 루트에 `CLAUDE.md` 생성 (클로드가 자동으로 찾는 파일):
168
+
169
+ 템플릿 사용: `./templates/[lang]/root_claude.md`
170
+ - [PROJECT_NAME], [GITHUB_USERNAME], [TODAY] 교체
171
+ - [REPO_COUNT]를 실제 레포지토리 개수로 교체
172
+ - 멀티레포 프로젝트임을 명시
173
+ - MASTER_CODESYNCER.md를 먼저 읽으라고 지시
174
+ - 전체 프로젝트 공통 규칙 명시
175
+
176
+ **중요**: 이 파일이 있어야 클로드가 세션 시작 시 자동으로 컨텍스트를 로드합니다!
177
+
178
+ ### 4.2 .codesyncer/MASTER_CODESYNCER.md
179
+
180
+ 워크스페이스 루트에 `.codesyncer/MASTER_CODESYNCER.md` 생성:
170
181
 
171
182
  템플릿 사용: `./templates/[lang]/master.md`
172
183
  - [REPO_TABLE]을 실제 감지된 레포로 교체
173
184
  - [KEYWORD_MAPPING]을 레포별 키워드로 교체
174
185
  - [PROJECT_NAME], [GITHUB_USERNAME] 교체
186
+ - 모든 레포지토리와 역할 나열
187
+ - 자동 레포지토리 전환 규칙
188
+ - 키워드 기반 네비게이션 매핑
189
+ - 멀티 레포 워크플로우 예시
175
190
 
176
191
  ---
177
192
 
@@ -183,8 +198,10 @@
183
198
  ✅ CodeSyncer 설정 완료!
184
199
 
185
200
  생성된 파일:
186
- 📁 .codesyncer/
187
- └── MASTER_CODESYNCER.md
201
+ 📁 루트/
202
+ ├── CLAUDE.md ⭐ 클로드가 먼저 읽는 파일
203
+ └── .codesyncer/
204
+ └── MASTER_CODESYNCER.md
188
205
 
189
206
  📁 [repo1]/.claude/
190
207
  ├── CLAUDE.md
@@ -197,8 +214,10 @@
197
214
 
198
215
  다음 단계:
199
216
  1. 생성된 파일 검토
200
- 2. CLAUDE.md 프로젝트별 규칙 커스터마이즈
201
- 3. 레포에서 "CLAUDE.md 읽어줘"로 개발 시작
217
+ 2. 각 레포의 CLAUDE.md 커스터마이즈
218
+ 3. 루트 CLAUDE.md 또는 개별 레포 CLAUDE.md 읽고 개발 시작
219
+
220
+ 💡 클로드는 자동으로 루트 CLAUDE.md를 찾아서 읽습니다!
202
221
 
203
222
  CodeSyncer 사용 준비 완료!
204
223
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesyncer",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "AI-powered multi-repository collaboration system - Works with Claude Code, Cursor, GitHub Copilot, and more",
5
5
  "keywords": [
6
6
  "ai-collaboration",
@@ -0,0 +1,239 @@
1
+ # CLAUDE.md - [PROJECT_NAME] Multi-Repo Project
2
+
3
+ > **🎯 This is a Multi-Repository Workspace**
4
+ >
5
+ > Each repository is an independent project, working together collaboratively.
6
+
7
+ ---
8
+
9
+ ## 📋 First Thing to Do
10
+
11
+ **If you've read this file, immediately read the following file:**
12
+
13
+ ```
14
+ .codesyncer/MASTER_CODESYNCER.md
15
+ ```
16
+
17
+ → This file contains **all repository information**, **auto-switching rules**, and **keyword mappings**.
18
+
19
+ ---
20
+
21
+ ## 🏗️ Project Overview
22
+
23
+ - **Project Name**: [PROJECT_NAME]
24
+ - **GitHub**: https://github.com/[GITHUB_USERNAME]/[PROJECT_NAME]
25
+ - **Created**: [TODAY]
26
+ - **Repositories**: [REPO_COUNT]
27
+
28
+ ---
29
+
30
+ ## 🗂️ Repository Structure
31
+
32
+ ```
33
+ [PROJECT_NAME]/
34
+ ├── CLAUDE.md (current file)
35
+ ├── .codesyncer/
36
+ │ └── MASTER_CODESYNCER.md ⭐ Multi-repo navigation
37
+
38
+ ├── [repo1]/
39
+ │ └── .claude/
40
+ │ └── CLAUDE.md (individual repo rules)
41
+
42
+ ├── [repo2]/
43
+ │ └── .claude/
44
+ │ └── CLAUDE.md (individual repo rules)
45
+
46
+ └── ...
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 🚨 Important Rules
52
+
53
+ ### 1. Check Repository Before Working
54
+ Always verify which repository you're working in:
55
+ ```bash
56
+ pwd # Check current directory
57
+ ```
58
+
59
+ ### 2. Read CLAUDE.md When Switching Repos
60
+ Every time you work in a new repo:
61
+ ```
62
+ "Read [repo-name]/.claude/CLAUDE.md"
63
+ ```
64
+
65
+ ### 3. No Work in Root Directory
66
+ Never code in root directory. Always navigate to specific repo before working.
67
+
68
+ ---
69
+
70
+ ## 🔄 Multi-Repo Workflow
71
+
72
+ ### Scenario 1: User Specifies Specific Repo
73
+ ```
74
+ User: "Add login API to backend"
75
+
76
+ 1. Check MASTER_CODESYNCER.md for "backend" keyword → find api-server repo
77
+ 2. Read api-server/.claude/CLAUDE.md
78
+ 3. Work in api-server
79
+ ```
80
+
81
+ ### Scenario 2: Multiple Repos Need Changes
82
+ ```
83
+ User: "Add order feature"
84
+
85
+ 1. "Order feature requires both backend (API) and frontend (UI). Proceed?"
86
+ 2. After user confirmation
87
+ 3. Work on API in api-server → report completion
88
+ 4. Work on UI in web-client → report completion
89
+ ```
90
+
91
+ ### Scenario 3: Unclear Which Repo
92
+ ```
93
+ 1. Check keyword mapping in MASTER_CODESYNCER.md
94
+ 2. If unclear, ask user
95
+ "Which repo should I work in?"
96
+ - A) api-server (backend)
97
+ - B) web-client (frontend)
98
+ - C) mobile-app (mobile)
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 📝 Project-Wide Common Rules
104
+
105
+ The following rules apply to **all repositories**:
106
+
107
+ ### Coding Standards
108
+ - ✅ Use TypeScript strict mode
109
+ - ✅ Explicit type definitions required
110
+ - ✅ Prefer functional programming
111
+ - ✅ Document all functions/components
112
+ - ✅ Error handling required
113
+
114
+ ### Comment Tag System
115
+ Use the same tags across all repos:
116
+ ```typescript
117
+ @codesyncer-rule // Special rules
118
+ @codesyncer-inference // Inference with reasoning
119
+ @codesyncer-decision // Decisions after discussion
120
+ @codesyncer-todo // User confirmation needed
121
+ @codesyncer-context // Business context explanation
122
+ ```
123
+
124
+ Details: `.claude/COMMENT_GUIDE.md` in each repo
125
+
126
+ ### No-Inference Zones
127
+ **Never infer, always ask the user:**
128
+ - 💰 Business logic numbers (prices, fees, limits, discounts)
129
+ - 🔌 API endpoint URLs
130
+ - 🔐 Security settings (token expiry, encryption methods)
131
+ - 🗄️ Database schema
132
+ - 🌐 External service integration details
133
+
134
+ ### Discussion-Required Keywords
135
+ When these keywords are detected, **stop work automatically** and discuss with user:
136
+ - 🔴 **CRITICAL**: payment, billing, auth, permission, delete, personal data, GDPR
137
+ - 🟡 **IMPORTANT**: API integration, DB schema, deployment, caching, email
138
+ - 🟢 **MINOR**: optimization, testing, logging, UI/UX
139
+
140
+ Full keyword list: `.codesyncer/MASTER_CODESYNCER.md`
141
+
142
+ ---
143
+
144
+ ## 🎯 Session Start Checklist
145
+
146
+ When AI reads this file:
147
+
148
+ 1. ✅ Immediately read `.codesyncer/MASTER_CODESYNCER.md`
149
+ 2. ✅ Understand overall repository structure
150
+ 3. ✅ Check keyword mappings
151
+ 4. ✅ Output ready message:
152
+
153
+ ```
154
+ ✅ [PROJECT_NAME] multi-repo project ready!
155
+
156
+ 📁 Repositories: [REPO_COUNT]
157
+ 📋 Read MASTER_CODESYNCER.md
158
+ 🎯 Ready to work
159
+
160
+ Which repo should we work in?
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 💡 Useful Commands
166
+
167
+ ### Navigation
168
+ ```
169
+ "Show repo list" → List repos from MASTER_CODESYNCER.md
170
+ "Go to backend" → Read api-server/.claude/CLAUDE.md
171
+ "Switch to frontend" → Read web-client/.claude/CLAUDE.md
172
+ ```
173
+
174
+ ### Document Updates
175
+ ```
176
+ "Update all structures" → Refresh all ARCHITECTURE.md files
177
+ "Check decision log" → Review DECISIONS.md in each repo
178
+ ```
179
+
180
+ ### Multi-Repo Tasks
181
+ ```
182
+ "Add ESLint to all repos" → Work sequentially on each repo
183
+ "Need common type defs" → Discuss where to place them
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 📚 Related Documents
189
+
190
+ ### Root Documents
191
+ - **Multi-repo Navigation**: `.codesyncer/MASTER_CODESYNCER.md` ⭐ **Required**
192
+ - **Setup Guide**: `.codesyncer/SETUP_GUIDE.md` (Reference after AI setup)
193
+
194
+ ### Individual Repo Documents
195
+ In each repo's `.claude/` folder:
196
+ - **CLAUDE.md** - Repo-specific coding rules
197
+ - **ARCHITECTURE.md** - Project structure
198
+ - **COMMENT_GUIDE.md** - Comment writing guide
199
+ - **DECISIONS.md** - Discussion decision log
200
+
201
+ ---
202
+
203
+ ## 🔍 Search Comments (Entire Project)
204
+
205
+ ```bash
206
+ # Find all TODOs across repos
207
+ grep -r "@codesyncer-todo" ./*/.claude/
208
+
209
+ # Find all decision records
210
+ grep -r "@codesyncer-decision" ./*/
211
+
212
+ # Search for specific keyword
213
+ grep -r "payment" ./*/
214
+ ```
215
+
216
+ ---
217
+
218
+ ## ⚠️ Important Notes
219
+
220
+ 1. **Context Switch When Changing Repos**
221
+ - Each repo may have independent rules
222
+ - Always check that repo's CLAUDE.md
223
+
224
+ 2. **Cross-Repo Dependencies**
225
+ - Discuss changes affecting multiple repos with user
226
+ - Explain clearly when order matters
227
+
228
+ 3. **Common Code Management**
229
+ - Discuss location for shared types, utilities
230
+ - Establish duplication prevention strategy
231
+
232
+ ---
233
+
234
+ **Version**: 1.0.0 (Powered by CodeSyncer)
235
+ **AI Tools**: Optimized for Claude Code | Compatible: Cursor, GitHub Copilot, Continue.dev
236
+
237
+ ---
238
+
239
+ *CodeSyncer is open source: https://github.com/bitjaru/codesyncer*
@@ -158,20 +158,35 @@ Use template: `./templates/[lang]/decisions.md`
158
158
 
159
159
  ---
160
160
 
161
- ## 🌐 Step 4: Generate Master Document
161
+ ## 🌐 Step 4: Generate Root Documents
162
162
 
163
- At the workspace root, create `.codesyncer/MASTER_CODESYNCER.md`:
163
+ Create the following files at the workspace root:
164
164
 
165
- ### Content:
166
- - List all repositories with their roles
167
- - Automatic repository switching rules
168
- - Keyword-based navigation mapping
169
- - Multi-repo workflow examples
165
+ ### 4.1 CLAUDE.md ⭐ **Claude Reads This First**
166
+
167
+ Create `CLAUDE.md` at root (automatically discovered by Claude):
168
+
169
+ Use template: `./templates/[lang]/root_claude.md`
170
+ - Replace [PROJECT_NAME], [GITHUB_USERNAME], [TODAY]
171
+ - Replace [REPO_COUNT] with actual repository count
172
+ - Indicate this is a multi-repo project
173
+ - Instruct to read MASTER_CODESYNCER.md first
174
+ - Specify project-wide common rules
175
+
176
+ **Important**: This file must exist for Claude to automatically load context at session start!
177
+
178
+ ### 4.2 .codesyncer/MASTER_CODESYNCER.md
179
+
180
+ Create `.codesyncer/MASTER_CODESYNCER.md` at workspace root:
170
181
 
171
182
  Use template: `./templates/[lang]/master.md`
172
183
  - Replace [REPO_TABLE] with actual detected repos
173
184
  - Replace [KEYWORD_MAPPING] with repo-specific keywords
174
185
  - Replace [PROJECT_NAME], [GITHUB_USERNAME]
186
+ - List all repositories with their roles
187
+ - Automatic repository switching rules
188
+ - Keyword-based navigation mapping
189
+ - Multi-repo workflow examples
175
190
 
176
191
  ---
177
192
 
@@ -183,8 +198,10 @@ After generating all files, present a summary:
183
198
  ✅ CodeSyncer Setup Complete!
184
199
 
185
200
  Created files:
186
- 📁 .codesyncer/
187
- └── MASTER_CODESYNCER.md
201
+ 📁 Root/
202
+ ├── CLAUDE.md ⭐ Claude reads this first
203
+ └── .codesyncer/
204
+ └── MASTER_CODESYNCER.md
188
205
 
189
206
  📁 [repo1]/.claude/
190
207
  ├── CLAUDE.md
@@ -197,8 +214,10 @@ Created files:
197
214
 
198
215
  Next Steps:
199
216
  1. Review the generated files
200
- 2. Customize any project-specific rules in CLAUDE.md
201
- 3. Start developing with: "Read CLAUDE.md" in each repo
217
+ 2. Customize each repo's CLAUDE.md
218
+ 3. Read root CLAUDE.md or individual repo CLAUDE.md to start development
219
+
220
+ 💡 Claude automatically finds and reads root CLAUDE.md!
202
221
 
203
222
  Ready to start using CodeSyncer!
204
223
  ```
@@ -0,0 +1,239 @@
1
+ # CLAUDE.md - [PROJECT_NAME] 멀티레포 프로젝트
2
+
3
+ > **🎯 이것은 멀티레포 워크스페이스입니다**
4
+ >
5
+ > 각 레포지토리는 독립적인 프로젝트이며, 함께 협업합니다.
6
+
7
+ ---
8
+
9
+ ## 📋 첫 번째 할 일
10
+
11
+ **이 파일을 읽었다면, 다음 파일을 즉시 읽어주세요:**
12
+
13
+ ```
14
+ .codesyncer/MASTER_CODESYNCER.md
15
+ ```
16
+
17
+ → 이 파일에 **모든 레포지토리 정보**, **자동 전환 규칙**, **키워드 매핑**이 있습니다.
18
+
19
+ ---
20
+
21
+ ## 🏗️ 프로젝트 개요
22
+
23
+ - **프로젝트명**: [PROJECT_NAME]
24
+ - **GitHub**: https://github.com/[GITHUB_USERNAME]/[PROJECT_NAME]
25
+ - **생성일**: [TODAY]
26
+ - **레포지토리 수**: [REPO_COUNT]개
27
+
28
+ ---
29
+
30
+ ## 🗂️ 레포지토리 구조
31
+
32
+ ```
33
+ [PROJECT_NAME]/
34
+ ├── CLAUDE.md (지금 읽는 파일)
35
+ ├── .codesyncer/
36
+ │ └── MASTER_CODESYNCER.md ⭐ 멀티레포 네비게이션
37
+
38
+ ├── [repo1]/
39
+ │ └── .claude/
40
+ │ └── CLAUDE.md (개별 레포 규칙)
41
+
42
+ ├── [repo2]/
43
+ │ └── .claude/
44
+ │ └── CLAUDE.md (개별 레포 규칙)
45
+
46
+ └── ...
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 🚨 중요 규칙
52
+
53
+ ### 1. 작업 전 레포지토리 확인
54
+ 항상 현재 어느 레포에서 작업하는지 확인하세요:
55
+ ```bash
56
+ pwd # 현재 디렉토리 확인
57
+ ```
58
+
59
+ ### 2. 레포 전환 시 CLAUDE.md 읽기
60
+ 새로운 레포에서 작업할 때마다:
61
+ ```
62
+ "[repo-name]/.claude/CLAUDE.md 읽어줘"
63
+ ```
64
+
65
+ ### 3. 루트에서는 작업 금지
66
+ 루트 디렉토리에서 코드 작업 금지. 항상 특정 레포로 이동 후 작업.
67
+
68
+ ---
69
+
70
+ ## 🔄 멀티레포 작업 흐름
71
+
72
+ ### 시나리오 1: 사용자가 특정 레포 명시
73
+ ```
74
+ 사용자: "백엔드에 로그인 API 추가해줘"
75
+
76
+ 1. MASTER_CODESYNCER.md에서 "백엔드" 키워드 → api-server 레포 확인
77
+ 2. api-server/.claude/CLAUDE.md 읽기
78
+ 3. api-server에서 작업
79
+ ```
80
+
81
+ ### 시나리오 2: 여러 레포 수정 필요
82
+ ```
83
+ 사용자: "주문 기능 추가해줘"
84
+
85
+ 1. "주문 기능은 백엔드(API)와 프론트엔드(UI) 둘 다 필요합니다. 진행할까요?"
86
+ 2. 사용자 확인 후
87
+ 3. api-server에서 API 작업 → 완료 보고
88
+ 4. web-client에서 UI 작업 → 완료 보고
89
+ ```
90
+
91
+ ### 시나리오 3: 어느 레포인지 모를 때
92
+ ```
93
+ 1. MASTER_CODESYNCER.md의 키워드 매핑 확인
94
+ 2. 불명확하면 사용자에게 질문
95
+ "어느 레포에서 작업할까요?"
96
+ - A) api-server (백엔드)
97
+ - B) web-client (프론트엔드)
98
+ - C) mobile-app (모바일)
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 📝 전체 프로젝트 공통 규칙
104
+
105
+ 다음 규칙은 **모든 레포지토리에 공통 적용**:
106
+
107
+ ### 코딩 표준
108
+ - ✅ TypeScript strict mode 사용
109
+ - ✅ 명시적 타입 정의 필수
110
+ - ✅ 함수형 프로그래밍 우선
111
+ - ✅ 모든 함수/컴포넌트에 주석 작성
112
+ - ✅ 에러 핸들링 필수
113
+
114
+ ### 주석 태그 시스템
115
+ 모든 레포에서 동일한 태그 사용:
116
+ ```typescript
117
+ @codesyncer-rule // 특별 규칙
118
+ @codesyncer-inference // 추론 내용과 근거
119
+ @codesyncer-decision // 의논 후 결정 사항
120
+ @codesyncer-todo // 사용자 확인 필요
121
+ @codesyncer-context // 비즈니스 맥락 설명
122
+ ```
123
+
124
+ 자세한 내용: 각 레포의 `.claude/COMMENT_GUIDE.md`
125
+
126
+ ### 추론 금지 영역
127
+ **절대 추론하지 말고 사용자에게 물어보세요:**
128
+ - 💰 비즈니스 로직 수치 (가격, 수수료, 한도, 할인율)
129
+ - 🔌 API 엔드포인트 URL
130
+ - 🔐 보안 설정 (토큰 만료 시간, 암호화 방식)
131
+ - 🗄️ 데이터베이스 스키마
132
+ - 🌐 외부 서비스 연동 정보
133
+
134
+ ### 의논 필수 키워드
135
+ 다음 키워드 감지 시 **자동으로 작업 중단** 후 사용자와 의논:
136
+ - 🔴 **CRITICAL**: 결제, 과금, 인증, 권한, 삭제, 개인정보, GDPR
137
+ - 🟡 **IMPORTANT**: API 연동, DB 스키마, 배포, 캐싱, 이메일
138
+ - 🟢 **MINOR**: 최적화, 테스트, 로깅, UI/UX
139
+
140
+ 자세한 키워드 목록: `.codesyncer/MASTER_CODESYNCER.md`
141
+
142
+ ---
143
+
144
+ ## 🎯 세션 시작 체크리스트
145
+
146
+ AI가 이 파일을 읽으면:
147
+
148
+ 1. ✅ `.codesyncer/MASTER_CODESYNCER.md` 즉시 읽기
149
+ 2. ✅ 전체 레포지토리 구조 파악
150
+ 3. ✅ 키워드 매핑 확인
151
+ 4. ✅ 준비 완료 메시지 출력:
152
+
153
+ ```
154
+ ✅ [PROJECT_NAME] 멀티레포 프로젝트 준비 완료!
155
+
156
+ 📁 레포지토리: [REPO_COUNT]개
157
+ 📋 MASTER_CODESYNCER.md 읽음
158
+ 🎯 작업 가능 상태
159
+
160
+ 어느 레포에서 작업할까요?
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 💡 유용한 명령어
166
+
167
+ ### 네비게이션
168
+ ```
169
+ "레포 목록 보여줘" → MASTER_CODESYNCER.md 기반 레포 나열
170
+ "백엔드로 이동" → api-server/.claude/CLAUDE.md 읽기
171
+ "프론트엔드로 전환" → web-client/.claude/CLAUDE.md 읽기
172
+ ```
173
+
174
+ ### 문서 업데이트
175
+ ```
176
+ "전체 구조 업데이트" → 모든 레포 ARCHITECTURE.md 갱신
177
+ "의논 기록 확인" → 각 레포의 DECISIONS.md 확인
178
+ ```
179
+
180
+ ### 멀티레포 작업
181
+ ```
182
+ "모든 레포에 ESLint 설정" → 순차적으로 각 레포 작업
183
+ "공통 타입 정의 필요" → 어느 레포에 둘지 의논
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 📚 관련 문서
189
+
190
+ ### 루트 문서
191
+ - **멀티레포 네비게이션**: `.codesyncer/MASTER_CODESYNCER.md` ⭐ **필수**
192
+ - **설정 가이드**: `.codesyncer/SETUP_GUIDE.md` (AI 설정 완료 후 참고용)
193
+
194
+ ### 개별 레포 문서
195
+ 각 레포의 `.claude/` 폴더:
196
+ - **CLAUDE.md** - 레포별 코딩 규칙
197
+ - **ARCHITECTURE.md** - 프로젝트 구조
198
+ - **COMMENT_GUIDE.md** - 주석 작성 가이드
199
+ - **DECISIONS.md** - 의논 결정 기록
200
+
201
+ ---
202
+
203
+ ## 🔍 주석 검색 (전체 프로젝트)
204
+
205
+ ```bash
206
+ # 모든 레포에서 TODO 찾기
207
+ grep -r "@codesyncer-todo" ./*/.claude/
208
+
209
+ # 모든 의논 결정 찾기
210
+ grep -r "@codesyncer-decision" ./*/
211
+
212
+ # 특정 키워드 찾기
213
+ grep -r "결제" ./*/
214
+ ```
215
+
216
+ ---
217
+
218
+ ## ⚠️ 주의사항
219
+
220
+ 1. **레포 전환 시 컨텍스트 전환**
221
+ - 각 레포는 독립적인 규칙을 가질 수 있음
222
+ - 반드시 해당 레포의 CLAUDE.md 확인
223
+
224
+ 2. **크로스 레포 의존성**
225
+ - 여러 레포에 영향 주는 변경은 사용자와 의논
226
+ - 순서가 중요한 경우 명확히 설명
227
+
228
+ 3. **공통 코드 관리**
229
+ - 타입 정의, 유틸 함수 등 공통 코드 위치 의논
230
+ - 중복 방지 전략 수립
231
+
232
+ ---
233
+
234
+ **버전**: 1.0.0 (Powered by CodeSyncer)
235
+ **AI 도구**: Claude Code 최적화 | 호환: Cursor, GitHub Copilot, Continue.dev
236
+
237
+ ---
238
+
239
+ *CodeSyncer는 오픈소스입니다: https://github.com/bitjaru/codesyncer*
@@ -158,20 +158,35 @@
158
158
 
159
159
  ---
160
160
 
161
- ## 🌐 4단계: 마스터 문서 생성
161
+ ## 🌐 4단계: 루트 문서 생성
162
162
 
163
- 워크스페이스 루트에 `.codesyncer/MASTER_CODESYNCER.md` 생성:
163
+ 워크스페이스 루트에 다음 파일들을 생성:
164
164
 
165
- ### 내용:
166
- - 모든 레포지토리와 역할 나열
167
- - 자동 레포지토리 전환 규칙
168
- - 키워드 기반 네비게이션 매핑
169
- - 멀티 레포 워크플로우 예시
165
+ ### 4.1 CLAUDE.md ⭐ **클로드가 먼저 읽는 파일**
166
+
167
+ 루트에 `CLAUDE.md` 생성 (클로드가 자동으로 찾는 파일):
168
+
169
+ 템플릿 사용: `./templates/[lang]/root_claude.md`
170
+ - [PROJECT_NAME], [GITHUB_USERNAME], [TODAY] 교체
171
+ - [REPO_COUNT]를 실제 레포지토리 개수로 교체
172
+ - 멀티레포 프로젝트임을 명시
173
+ - MASTER_CODESYNCER.md를 먼저 읽으라고 지시
174
+ - 전체 프로젝트 공통 규칙 명시
175
+
176
+ **중요**: 이 파일이 있어야 클로드가 세션 시작 시 자동으로 컨텍스트를 로드합니다!
177
+
178
+ ### 4.2 .codesyncer/MASTER_CODESYNCER.md
179
+
180
+ 워크스페이스 루트에 `.codesyncer/MASTER_CODESYNCER.md` 생성:
170
181
 
171
182
  템플릿 사용: `./templates/[lang]/master.md`
172
183
  - [REPO_TABLE]을 실제 감지된 레포로 교체
173
184
  - [KEYWORD_MAPPING]을 레포별 키워드로 교체
174
185
  - [PROJECT_NAME], [GITHUB_USERNAME] 교체
186
+ - 모든 레포지토리와 역할 나열
187
+ - 자동 레포지토리 전환 규칙
188
+ - 키워드 기반 네비게이션 매핑
189
+ - 멀티 레포 워크플로우 예시
175
190
 
176
191
  ---
177
192
 
@@ -183,8 +198,10 @@
183
198
  ✅ CodeSyncer 설정 완료!
184
199
 
185
200
  생성된 파일:
186
- 📁 .codesyncer/
187
- └── MASTER_CODESYNCER.md
201
+ 📁 루트/
202
+ ├── CLAUDE.md ⭐ 클로드가 먼저 읽는 파일
203
+ └── .codesyncer/
204
+ └── MASTER_CODESYNCER.md
188
205
 
189
206
  📁 [repo1]/.claude/
190
207
  ├── CLAUDE.md
@@ -197,8 +214,10 @@
197
214
 
198
215
  다음 단계:
199
216
  1. 생성된 파일 검토
200
- 2. CLAUDE.md 프로젝트별 규칙 커스터마이즈
201
- 3. 레포에서 "CLAUDE.md 읽어줘"로 개발 시작
217
+ 2. 각 레포의 CLAUDE.md 커스터마이즈
218
+ 3. 루트 CLAUDE.md 또는 개별 레포 CLAUDE.md 읽고 개발 시작
219
+
220
+ 💡 클로드는 자동으로 루트 CLAUDE.md를 찾아서 읽습니다!
202
221
 
203
222
  CodeSyncer 사용 준비 완료!
204
223
  ```