codesyncer 2.1.3 β†’ 2.2.1

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
@@ -11,6 +11,48 @@
11
11
 
12
12
  ---
13
13
 
14
+ ## πŸ€” 문제 상황
15
+
16
+ μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œ AI μ“°λ©΄ 이런 문제 μƒκΉλ‹ˆλ‹€:
17
+
18
+ **1. μ„Έμ…˜λ§ˆλ‹€ μ»¨ν…μŠ€νŠΈ 날아감** 😫
19
+ - μƒˆ AI μ„Έμ…˜ = μ²˜μŒλΆ€ν„° λ‹€μ‹œ μ„€λͺ…
20
+ - 같은 μ•„ν‚€ν…μ²˜ μ„€λͺ… 반볡
21
+ - "API μ—”λ“œν¬μΈνŠΈκ°€ λ­μ˜€μ§€?" "인증은 μ–΄λ–»κ²Œ ν•˜μ§€?" - 맀번. λ¬Όμ–΄λ΄„.
22
+
23
+ **2. λ©€ν‹°λ ˆν¬ 혼돈** 🀯
24
+ ```
25
+ λ‚΄-ν”„λ‘œμ νŠΈ/
26
+ β”œβ”€β”€ api-server/ (λ°±μ—”λ“œ)
27
+ β”œβ”€β”€ web-client/ (ν”„λ‘ νŠΈμ—”λ“œ)
28
+ └── mobile-app/ (λͺ¨λ°”일)
29
+ ```
30
+ - AIλŠ” ν•œ λ²ˆμ— ν•œ 레포만 λ΄„
31
+ - λ‹€λ₯Έ 레포의 μ»¨ν…μŠ€νŠΈ λΆ€μ‘± β†’ 뢀뢄적인 μ½”λ“œλ§Œ 생성
32
+ - "둜그인 μΆ”κ°€ν•΄μ€˜"λŠ” λ°±μ—”λ“œ API + ν”„λ‘ νŠΈ UI λ‘˜ λ‹€ ν•„μš”ν•œλ° AIλŠ” λͺ¨λ¦„
33
+
34
+ **3. AIκ°€ μœ„ν—˜ν•œ 좔둠을 함** ⚠️
35
+ - "νƒ€μž„μ•„μ›ƒ 30초둜 μ„€μ •ν–ˆμ–΄μš”" - μ–΄? 5μ΄ˆμ—¬μ•Ό ν•˜λŠ”λ°!
36
+ - "/api/v1/... μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€" - 잘λͺ»λœ μ—”λ“œν¬μΈνŠΈ!
37
+ - λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, λ³΄μ•ˆ μ„€μ •, 가격 정책을 λ§ˆμŒλŒ€λ‘œ μΆ”λ‘ 
38
+
39
+ **κ²°κ³Ό**: μ„€λͺ…ν•˜κ³  κ³ μΉ˜λŠ” μ‹œκ°„μ΄ μ‹€μ œ μ½”λ”© μ‹œκ°„λ³΄λ‹€ 더 κΉ€
40
+
41
+ ---
42
+
43
+ ## ✨ ν•΄κ²° 방법
44
+
45
+ CodeSyncerλŠ” AIμ—κ²Œ **전체 κ·Έλ¦Ό**을 μ œκ³΅ν•©λ‹ˆλ‹€:
46
+
47
+ 1. **πŸ“ μ½”λ“œ 주석** - λͺ¨λ“  κ²°μ •κ³Ό λ§₯락을 μ½”λ“œμ— 직접 기둝
48
+ 2. **πŸ—‚οΈ λ§ˆμŠ€ν„° λ¬Έμ„œ** - 레포 κ°„ 이동과 전체 κ·œμΉ™ 관리
49
+ 3. **πŸ“‹ λ ˆν¬λ³„ λ¬Έμ„œ** - 각 레포만의 νŠΉλ³„ν•œ κ°€μ΄λ“œλΌμΈ
50
+ 4. **🎯 ν‚€μ›Œλ“œ μ‹œμŠ€ν…œ** - μ€‘μš”ν•œ κ²°μ •(결제, 인증 λ“±)μ—μ„œ μžλ™ μΌμ‹œμ •μ§€
51
+
52
+ **κ²°κ³Ό**: λ³΅μž‘ν•œ λ©€ν‹°λ ˆν¬ ν”„λ‘œμ νŠΈμ—μ„œλ„ **정확도 높은** AI μ½”λ”© 🎯
53
+
54
+ ---
55
+
14
56
  ## 🎯 CodeSyncerλž€?
15
57
 
16
58
  CodeSyncerλŠ” AI μ½”λ”© μ–΄μ‹œμŠ€ν„΄νŠΈ(Claude Code λ“±)κ°€ λ©€ν‹° λ ˆν¬μ§€ν† λ¦¬ μ›Œν¬μŠ€νŽ˜μ΄μŠ€μ— μ§€λŠ₯ν˜• ν˜‘μ—… μ‹œμŠ€ν…œμ„ ꡬ좕할 수 μžˆλ„λ‘ **ν”„λ ˆμž„μ›Œν¬μ™€ κ·œμΉ™**을 μ œκ³΅ν•©λ‹ˆλ‹€.
@@ -56,7 +98,7 @@ npm install -g codesyncer
56
98
 
57
99
  ---
58
100
 
59
- ## πŸ”„ μ—…λ°μ΄νŠΈ
101
+ ## πŸ”„ CodeSyncer μ—…λ°μ΄νŠΈ
60
102
 
61
103
  ### ν˜„μž¬ 버전 확인
62
104
  ```bash
@@ -70,11 +112,64 @@ npm view codesyncer version
70
112
 
71
113
  ### μ΅œμ‹  λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈ
72
114
  ```bash
73
- npm update -g codesyncer
74
- # λ˜λŠ”
75
115
  npm install -g codesyncer@latest
76
116
  ```
77
117
 
118
+ ### μ—…λ°μ΄νŠΈ ν›„, ν”„λ‘œμ νŠΈ 동기화
119
+
120
+ CodeSyncerλ₯Ό μƒˆ λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈν•œ ν›„, `update` λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό μ΅œμ‹  ν…œν”Œλ¦Ώ 및 κΈ°λŠ₯κ³Ό λ™κΈ°ν™”ν•˜μ„Έμš”:
121
+
122
+ ```bash
123
+ cd /path/to/your/multi-repo-workspace
124
+ codesyncer update
125
+ ```
126
+
127
+ **μˆ˜ν–‰ μž‘μ—…:**
128
+ 1. βœ… μ›Œν¬μŠ€νŽ˜μ΄μŠ€μ— μΆ”κ°€λœ μƒˆ λ ˆν¬μ§€ν† λ¦¬ μŠ€μΊ”
129
+ 2. βœ… μƒˆ λ²„μ „μ—μ„œ λˆ„λ½λœ 파일 감지 (예: v2.1.2+ λ²„μ „μ˜ 루트 CLAUDE.md)
130
+ 3. βœ… μ–Έμ–΄ μ„€μ • μžλ™ 감지 (ν•œκ΅­μ–΄/μ˜μ–΄)
131
+ 4. βœ… μƒˆ 파일 생성 μ „ μ‚¬μš©μž 확인 μš”μ²­
132
+ 5. βœ… κΈ°μ‘΄ μ»€μŠ€ν„°λ§ˆμ΄μ§• λ‚΄μš© 보쑴
133
+
134
+ **좜λ ₯ μ˜ˆμ‹œ:**
135
+ ```
136
+ πŸ”„ CodeSyncer - Update System
137
+
138
+ βœ“ Scan complete
139
+
140
+ ⚠️ Missing root CLAUDE.md (new in v2.1.2)
141
+ This file allows Claude to automatically load context at session start.
142
+
143
+ ? 루트 CLAUDE.mdλ₯Ό μƒμ„±ν• κΉŒμš”? (Y/n) Y
144
+
145
+ βœ“ 루트 CLAUDE.md 생성 μ™„λ£Œ!
146
+ πŸ’‘ 이제 Claudeκ°€ μ„Έμ…˜ μ‹œμž‘ μ‹œ μžλ™μœΌλ‘œ μ»¨ν…μŠ€νŠΈλ₯Ό λ‘œλ“œν•©λ‹ˆλ‹€!
147
+
148
+ πŸ€– λ‹€μŒ 단계 (AI μ–΄μ‹œμŠ€ν„΄νŠΈμ—κ²Œ):
149
+ ────────────────────────────────────────────────────────────
150
+ μ˜΅μ…˜ 1) μƒˆ μ„Έμ…˜ μ‹œμž‘
151
+ Claudeκ°€ μžλ™μœΌλ‘œ 루트 CLAUDE.mdλ₯Ό μ°Ύμ•„μ„œ μ½μŠ΅λ‹ˆλ‹€.
152
+
153
+ μ˜΅μ…˜ 2) ν˜„μž¬ μ„Έμ…˜μ—μ„œ λ°”λ‘œ 적용
154
+ "CLAUDE.md μ½μ–΄μ€˜"
155
+ ────────────────────────────────────────────────────────────
156
+
157
+ βœ… Update complete!
158
+ ```
159
+
160
+ **`codesyncer update` μ‹€ν–‰ ν›„:**
161
+
162
+ λ‹€μŒ 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•˜μ—¬ 변경사항을 μ μš©ν•˜μ„Έμš”:
163
+
164
+ **μ˜΅μ…˜ 1: μƒˆ AI μ„Έμ…˜ μ‹œμž‘** (ꢌμž₯)
165
+ - ν˜„μž¬ AI μ–΄μ‹œμŠ€ν„΄νŠΈ μ’…λ£Œ
166
+ - μƒˆ μ„Έμ…˜ μ‹œμž‘
167
+ - Claudeκ°€ μžλ™μœΌλ‘œ 루트 CLAUDE.mdλ₯Ό μ°Ύμ•„μ„œ 읽음
168
+
169
+ **μ˜΅μ…˜ 2: ν˜„μž¬ μ„Έμ…˜μ—μ„œ 적용**
170
+ - AIμ—κ²Œ λ§ν•˜κΈ°: **"CLAUDE.md μ½μ–΄μ€˜"**
171
+ - AIκ°€ μ¦‰μ‹œ μ—…λ°μ΄νŠΈλœ μ»¨ν…μŠ€νŠΈ λ‘œλ“œ
172
+
78
173
  ---
79
174
 
80
175
  ## πŸš€ λΉ λ₯Έ μ‹œμž‘
package/README.md CHANGED
@@ -11,6 +11,48 @@
11
11
 
12
12
  ---
13
13
 
14
+ ## πŸ€” The Problem
15
+
16
+ Working with AI on real projects? You face these issues:
17
+
18
+ **1. Context is lost every session** 😫
19
+ - New AI session = Start from scratch
20
+ - Explain the same architecture again and again
21
+ - "What's the API endpoint?" "How does auth work?" - Every. Single. Time.
22
+
23
+ **2. Multi-repo chaos** 🀯
24
+ ```
25
+ my-saas-project/
26
+ β”œβ”€β”€ api-server/ (backend)
27
+ β”œβ”€β”€ web-client/ (frontend)
28
+ └── mobile-app/ (mobile)
29
+ ```
30
+ - AI only sees one repo at a time
31
+ - Missing context from other repos β†’ Fragmented code
32
+ - "Add login" needs backend API + frontend UI, but AI doesn't know both
33
+
34
+ **3. AI makes dangerous assumptions** ⚠️
35
+ - "I'll set the timeout to 30 seconds" - Wait, should be 5!
36
+ - "Using /api/v1/..." - Wrong endpoint!
37
+ - Guesses business logic, security settings, pricing rules
38
+
39
+ **Result**: You spend more time explaining and fixing than actual coding.
40
+
41
+ ---
42
+
43
+ ## ✨ The Solution
44
+
45
+ CodeSyncer gives AI the **full picture** through:
46
+
47
+ 1. **πŸ“ Comments in code** - All decisions and context live where they belong
48
+ 2. **πŸ—‚οΈ Master document** - Cross-repo navigation and rules
49
+ 3. **πŸ“‹ Per-repo docs** - Each repo's specific guidelines
50
+ 4. **🎯 Keyword system** - Auto-pause for critical decisions (payment, auth, etc.)
51
+
52
+ **Result**: AI codes with **high accuracy** even in complex multi-repo projects. 🎯
53
+
54
+ ---
55
+
14
56
  ## 🎯 What is CodeSyncer?
15
57
 
16
58
  CodeSyncer provides the **framework and rules** for AI coding assistants (like Claude Code) to set up an intelligent collaboration system across your multi-repository workspace.
@@ -56,7 +98,7 @@ npm install -g codesyncer
56
98
 
57
99
  ---
58
100
 
59
- ## πŸ”„ Updating
101
+ ## πŸ”„ Updating CodeSyncer
60
102
 
61
103
  ### Check your current version
62
104
  ```bash
@@ -70,11 +112,64 @@ npm view codesyncer version
70
112
 
71
113
  ### Update to latest
72
114
  ```bash
73
- npm update -g codesyncer
74
- # or
75
115
  npm install -g codesyncer@latest
76
116
  ```
77
117
 
118
+ ### After updating, sync your project
119
+
120
+ When you update CodeSyncer to a new version, run the `update` command to sync your project with the latest templates and features:
121
+
122
+ ```bash
123
+ cd /path/to/your/multi-repo-workspace
124
+ codesyncer update
125
+ ```
126
+
127
+ **What happens:**
128
+ 1. βœ… Scans for new repositories added to your workspace
129
+ 2. βœ… Detects missing files from new versions (e.g., root CLAUDE.md in v2.1.2+)
130
+ 3. βœ… Auto-detects your language settings (English/Korean)
131
+ 4. βœ… Prompts before creating any new files
132
+ 5. βœ… Preserves your existing customizations
133
+
134
+ **Example output:**
135
+ ```
136
+ πŸ”„ CodeSyncer - Update System
137
+
138
+ βœ“ Scan complete
139
+
140
+ ⚠️ Missing root CLAUDE.md (new in v2.1.2)
141
+ This file allows Claude to automatically load context at session start.
142
+
143
+ ? Create root CLAUDE.md? (Y/n) Y
144
+
145
+ βœ“ Root CLAUDE.md created!
146
+ πŸ’‘ Claude will now automatically load context at session start!
147
+
148
+ πŸ€– Next Steps (Tell your AI):
149
+ ────────────────────────────────────────────────────────────
150
+ Option 1) Start a new session
151
+ Claude will automatically find and read root CLAUDE.md
152
+
153
+ Option 2) Apply immediately in current session
154
+ "Read CLAUDE.md"
155
+ ────────────────────────────────────────────────────────────
156
+
157
+ βœ… Update complete!
158
+ ```
159
+
160
+ **After running `codesyncer update`:**
161
+
162
+ Choose one of these options to apply changes:
163
+
164
+ **Option 1: Start a new AI session** (Recommended)
165
+ - Close your current AI assistant
166
+ - Open a new session
167
+ - Claude automatically finds and reads root CLAUDE.md
168
+
169
+ **Option 2: Apply in current session**
170
+ - Tell your AI: **"Read CLAUDE.md"**
171
+ - AI loads the updated context immediately
172
+
78
173
  ---
79
174
 
80
175
  ## πŸš€ Quick Start
@@ -1 +1 @@
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"}
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,iBAysBzD"}
@@ -64,72 +64,109 @@ async function updateCommand(options) {
64
64
  catch {
65
65
  // Default to English
66
66
  }
67
- const spinner = (0, ora_1.default)('Scanning for changes...').start();
67
+ // Ask user for update mode (unless --hard flag is provided)
68
+ let isHardUpdate = options.hard || false;
69
+ if (!options.hard) {
70
+ const { updateMode } = await inquirer_1.default.prompt([
71
+ {
72
+ type: 'list',
73
+ name: 'updateMode',
74
+ message: lang === 'ko' ? 'μ—…λ°μ΄νŠΈ 방식을 μ„ νƒν•˜μ„Έμš”:' : 'Select update mode:',
75
+ choices: [
76
+ {
77
+ name: lang === 'ko'
78
+ ? 'πŸ“ 일반 μ—…λ°μ΄νŠΈ - λˆ„λ½λœ 파일만 생성'
79
+ : 'πŸ“ Normal Update - Generate missing files only',
80
+ value: 'normal',
81
+ },
82
+ {
83
+ name: lang === 'ko'
84
+ ? 'πŸ” ν•˜λ“œ μ—…λ°μ΄νŠΈ - λͺ¨λ“  파일 μŠ€μΊ” 및 λ‚΄μš© μ—…λ°μ΄νŠΈ'
85
+ : 'πŸ” Hard Update - Deep scan and update all existing files',
86
+ value: 'hard',
87
+ },
88
+ ],
89
+ default: 'normal',
90
+ },
91
+ ]);
92
+ isHardUpdate = updateMode === 'hard';
93
+ }
94
+ if (isHardUpdate) {
95
+ console.log(chalk_1.default.bold.yellow(lang === 'ko'
96
+ ? '\nπŸ” ν•˜λ“œ μ—…λ°μ΄νŠΈ λͺ¨λ“œ: λͺ¨λ“  νŒŒμΌμ„ μŠ€μΊ”ν•˜κ³  μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.\n'
97
+ : '\nπŸ” Hard update mode: Scanning and updating all files.\n'));
98
+ }
99
+ else {
100
+ console.log(chalk_1.default.bold.cyan(lang === 'ko'
101
+ ? '\nπŸ“ 일반 μ—…λ°μ΄νŠΈ λͺ¨λ“œ: λˆ„λ½λœ 파일만 μƒμ„±ν•©λ‹ˆλ‹€.\n'
102
+ : '\nπŸ“ Normal update mode: Generating missing files only.\n'));
103
+ }
104
+ const spinner = (0, ora_1.default)(lang === 'ko' ? '변경사항 μŠ€μΊ” 쀑...' : 'Scanning for changes...').start();
68
105
  // Scan for repositories
69
106
  const foundRepos = await (0, scanner_1.scanForRepositories)(currentDir);
70
- // Read existing master doc to get current config
71
- const masterPath = path.join(currentDir, '.codesyncer', 'MASTER_CODESYNCER.md');
72
- let existingRepos = [];
73
- try {
74
- const masterContent = await fs.readFile(masterPath, 'utf-8');
75
- // Extract repository names from the master doc (simple parsing)
76
- const repoMatches = masterContent.match(/\|\s+([^|]+)\s+\|[^|]+\|[^|]+\|[^|]+\|/g);
77
- if (repoMatches) {
78
- existingRepos = repoMatches
79
- .slice(1) // Skip header
80
- .map((match) => match.split('|')[1].trim())
81
- .filter(Boolean);
107
+ // Check each repository for missing .claude files
108
+ const requiredFiles = ['CLAUDE.md', 'ARCHITECTURE.md', 'COMMENT_GUIDE.md', 'DECISIONS.md'];
109
+ const reposNeedingSetup = [];
110
+ for (const repo of foundRepos) {
111
+ const claudeDir = path.join(repo.path, '.claude');
112
+ const missingFiles = [];
113
+ // Check if .claude directory exists
114
+ if (!(await fs.pathExists(claudeDir))) {
115
+ missingFiles.push(...requiredFiles);
116
+ }
117
+ else {
118
+ // Check each required file
119
+ for (const file of requiredFiles) {
120
+ const filePath = path.join(claudeDir, file);
121
+ if (!(await fs.pathExists(filePath))) {
122
+ missingFiles.push(file);
123
+ }
124
+ }
125
+ }
126
+ if (missingFiles.length > 0) {
127
+ reposNeedingSetup.push({ repo: repo.name, missingFiles });
82
128
  }
83
129
  }
84
- catch (error) {
85
- // Ignore if can't read
86
- }
87
- // Find new repositories
88
- const currentRepoNames = foundRepos.map((r) => r.name);
89
- const newRepos = foundRepos.filter((r) => !existingRepos.includes(r.name));
90
- const removedRepos = existingRepos.filter((name) => !currentRepoNames.includes(name));
91
- spinner.succeed('Scan complete');
130
+ spinner.succeed(lang === 'ko' ? 'μŠ€μΊ” μ™„λ£Œ' : 'Scan complete');
131
+ // Check if root CLAUDE.md exists
132
+ const rootClaudePath = path.join(currentDir, 'CLAUDE.md');
133
+ const hasRootClaude = await fs.pathExists(rootClaudePath);
92
134
  // Display changes
93
- if (newRepos.length === 0 && removedRepos.length === 0) {
135
+ const hasChanges = reposNeedingSetup.length > 0 || !hasRootClaude;
136
+ if (!hasChanges) {
94
137
  console.log(chalk_1.default.green('\nβœ“ Everything is up to date!\n'));
95
- console.log(chalk_1.default.gray(` Total repositories: ${foundRepos.length}`));
96
- console.log(chalk_1.default.gray(` With CodeSyncer setup: ${foundRepos.filter((r) => r.hasCodeSyncer).length}\n`));
138
+ console.log(chalk_1.default.gray(` ${lang === 'ko' ? '총 λ ˆν¬μ§€ν† λ¦¬' : 'Total repositories'}: ${foundRepos.length}`));
139
+ console.log(chalk_1.default.gray(` ${lang === 'ko' ? 'CodeSyncer μ„€μ • μ™„λ£Œ' : 'With CodeSyncer setup'}: ${foundRepos.filter((r) => r.hasCodeSyncer).length}\n`));
97
140
  return;
98
141
  }
99
- console.log(chalk_1.default.bold('\nπŸ“Š Changes detected:\n'));
100
- if (newRepos.length > 0) {
101
- console.log(chalk_1.default.green(` + ${newRepos.length} new repository(ies):`));
102
- newRepos.forEach((repo) => {
103
- console.log(chalk_1.default.gray(` - ${repo.name} (${repo.type})`));
142
+ console.log(chalk_1.default.bold(lang === 'ko' ? '\nπŸ“Š μŠ€μΊ” κ²°κ³Ό:\n' : '\nπŸ“Š Scan Results:\n'));
143
+ // Show repository summary
144
+ console.log(chalk_1.default.cyan(` ${lang === 'ko' ? '총 λ ˆν¬μ§€ν† λ¦¬' : 'Total repositories'}: ${foundRepos.length}`));
145
+ console.log();
146
+ // Most important: Show repos needing setup
147
+ if (reposNeedingSetup.length > 0) {
148
+ console.log(chalk_1.default.bold.yellow(` ⚠️ ${reposNeedingSetup.length} ${lang === 'ko' ? '개의 λ ˆν¬μ§€ν† λ¦¬μ— λˆ„λ½λœ 파일:' : 'repository(ies) with missing files:'}`));
149
+ reposNeedingSetup.forEach(({ repo, missingFiles }) => {
150
+ const allMissing = missingFiles.length === requiredFiles.length;
151
+ if (allMissing) {
152
+ console.log(chalk_1.default.gray(` πŸ“ ${repo}: ${chalk_1.default.red('CodeSyncer λ―Έμ„€μ •')}`));
153
+ }
154
+ else {
155
+ console.log(chalk_1.default.gray(` πŸ“ ${repo}:`));
156
+ missingFiles.forEach((file) => {
157
+ console.log(chalk_1.default.gray(` βœ— .claude/${file}`));
158
+ });
159
+ }
104
160
  });
105
161
  console.log();
106
162
  }
107
- if (removedRepos.length > 0) {
108
- console.log(chalk_1.default.yellow(` - ${removedRepos.length} removed repository(ies):`));
109
- removedRepos.forEach((name) => {
110
- console.log(chalk_1.default.gray(` - ${name}`));
111
- });
163
+ // Show fully configured repos
164
+ const fullyConfiguredRepos = foundRepos.filter(repo => !reposNeedingSetup.find(r => r.repo === repo.name));
165
+ if (fullyConfiguredRepos.length > 0) {
166
+ console.log(chalk_1.default.green(` βœ“ ${fullyConfiguredRepos.length} ${lang === 'ko' ? '개의 λ ˆν¬μ§€ν† λ¦¬ μ„€μ • μ™„λ£Œ' : 'repository(ies) fully configured'}`));
112
167
  console.log();
113
168
  }
114
- // Update workspace map
115
- const updateSpinner = (0, ora_1.default)('Updating WORKSPACE_MAP.md...').start();
116
- try {
117
- const workspaceMapPath = path.join(currentDir, '.codesyncer', 'WORKSPACE_MAP.md');
118
- const currentDate = new Date().toISOString().split('T')[0];
119
- // Simple update: add a note about the scan
120
- const updateNote = `\n## πŸ”„ Last Update: ${currentDate}\n\n`;
121
- const statsNote = `**Repositories found:** ${foundRepos.length}\n`;
122
- const newReposNote = newRepos.length > 0 ? `**New repositories:** ${newRepos.map((r) => r.name).join(', ')}\n` : '';
123
- // Append update info
124
- await fs.appendFile(workspaceMapPath, updateNote + statsNote + newReposNote);
125
- updateSpinner.succeed('Updated WORKSPACE_MAP.md');
126
- }
127
- catch (error) {
128
- updateSpinner.fail('Failed to update WORKSPACE_MAP.md');
129
- }
130
- // Check if root CLAUDE.md exists
131
- const rootClaudePath = path.join(currentDir, 'CLAUDE.md');
132
- const hasRootClaude = await fs.pathExists(rootClaudePath);
169
+ // Check and create root CLAUDE.md if missing
133
170
  if (!hasRootClaude) {
134
171
  console.log(chalk_1.default.bold.yellow('\n⚠️ Missing root CLAUDE.md (new in v2.1.2)\n'));
135
172
  console.log(chalk_1.default.gray('This file allows Claude to automatically load context at session start.\n'));
@@ -178,6 +215,28 @@ async function updateCommand(options) {
178
215
  console.log(chalk_1.default.cyan(lang === 'ko'
179
216
  ? 'πŸ’‘ 이제 Claudeκ°€ μ„Έμ…˜ μ‹œμž‘ μ‹œ μžλ™μœΌλ‘œ μ»¨ν…μŠ€νŠΈλ₯Ό λ‘œλ“œν•©λ‹ˆλ‹€!'
180
217
  : 'πŸ’‘ Claude will now automatically load context at session start!\n'));
218
+ // Show next steps for AI
219
+ console.log(chalk_1.default.bold(lang === 'ko' ? '\nπŸ€– λ‹€μŒ 단계 (AI μ–΄μ‹œμŠ€ν„΄νŠΈμ—κ²Œ):' : '\nπŸ€– Next Steps (Tell your AI):'));
220
+ console.log(chalk_1.default.gray('─'.repeat(60)));
221
+ console.log();
222
+ if (lang === 'ko') {
223
+ console.log(chalk_1.default.bold('μ˜΅μ…˜ 1) μƒˆ μ„Έμ…˜ μ‹œμž‘'));
224
+ console.log(chalk_1.default.gray(' Claudeκ°€ μžλ™μœΌλ‘œ 루트 CLAUDE.mdλ₯Ό μ°Ύμ•„μ„œ μ½μŠ΅λ‹ˆλ‹€.'));
225
+ console.log();
226
+ console.log(chalk_1.default.bold('μ˜΅μ…˜ 2) ν˜„μž¬ μ„Έμ…˜μ—μ„œ λ°”λ‘œ 적용'));
227
+ console.log(chalk_1.default.yellow(' "CLAUDE.md μ½μ–΄μ€˜"'));
228
+ console.log();
229
+ }
230
+ else {
231
+ console.log(chalk_1.default.bold('Option 1) Start a new session'));
232
+ console.log(chalk_1.default.gray(' Claude will automatically find and read root CLAUDE.md'));
233
+ console.log();
234
+ console.log(chalk_1.default.bold('Option 2) Apply immediately in current session'));
235
+ console.log(chalk_1.default.yellow(' "Read CLAUDE.md"'));
236
+ console.log();
237
+ }
238
+ console.log(chalk_1.default.gray('─'.repeat(60)));
239
+ console.log();
181
240
  }
182
241
  catch (error) {
183
242
  spinner.fail(lang === 'ko' ? '루트 CLAUDE.md 생성 μ‹€νŒ¨' : 'Failed to create root CLAUDE.md');
@@ -185,10 +244,477 @@ async function updateCommand(options) {
185
244
  }
186
245
  }
187
246
  }
188
- console.log(chalk_1.default.bold.green('\nβœ… Update complete!\n'));
189
- if (newRepos.length > 0) {
190
- console.log(chalk_1.default.bold('πŸ“ Next steps:\n'));
191
- console.log(` ${chalk_1.default.cyan('Run:')} codesyncer add-repo ${chalk_1.default.gray('(to set up new repositories)')}\n`);
247
+ // Generate UPDATE_GUIDE.md if there are repos needing setup OR if hard update
248
+ const needsUpdateGuide = reposNeedingSetup.length > 0 || isHardUpdate;
249
+ if (needsUpdateGuide) {
250
+ if (reposNeedingSetup.length > 0) {
251
+ console.log(chalk_1.default.bold.yellow(lang === 'ko'
252
+ ? '\n⚠️ 일뢀 λ ˆν¬μ§€ν† λ¦¬μ— λˆ„λ½λœ 파일이 μžˆμŠ΅λ‹ˆλ‹€\n'
253
+ : '\n⚠️ Some repositories have missing files\n'));
254
+ }
255
+ if (isHardUpdate && reposNeedingSetup.length === 0) {
256
+ console.log(chalk_1.default.bold.yellow(lang === 'ko'
257
+ ? '\nπŸ” ν•˜λ“œ μ—…λ°μ΄νŠΈ: λͺ¨λ“  λ ˆν¬μ§€ν† λ¦¬ νŒŒμΌμ„ μŠ€μΊ”ν•˜κ³  μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€\n'
258
+ : '\nπŸ” Hard update: Scanning and updating all repository files\n'));
259
+ }
260
+ const { generateUpdateGuide } = await inquirer_1.default.prompt([
261
+ {
262
+ type: 'confirm',
263
+ name: 'generateUpdateGuide',
264
+ message: lang === 'ko'
265
+ ? 'AIκ°€ 읽을 UPDATE_GUIDE.mdλ₯Ό μƒμ„±ν• κΉŒμš”?'
266
+ : 'Generate UPDATE_GUIDE.md for AI to read?',
267
+ default: true,
268
+ },
269
+ ]);
270
+ if (generateUpdateGuide) {
271
+ const spinner = (0, ora_1.default)(lang === 'ko' ? 'UPDATE_GUIDE.md 생성 쀑...' : 'Creating UPDATE_GUIDE.md...').start();
272
+ try {
273
+ const updateGuidePath = path.join(currentDir, '.codesyncer', 'UPDATE_GUIDE.md');
274
+ const today = new Date().toISOString().split('T')[0];
275
+ // Extract project info
276
+ let projectName = path.basename(currentDir);
277
+ try {
278
+ const masterPath = path.join(currentDir, '.codesyncer', 'MASTER_CODESYNCER.md');
279
+ const masterContent = await fs.readFile(masterPath, 'utf-8');
280
+ const nameMatch = masterContent.match(/ν”„λ‘œμ νŠΈ[:\s]*([^\n]+)|Project[:\s]*([^\n]+)/i);
281
+ if (nameMatch)
282
+ projectName = (nameMatch[1] || nameMatch[2]).trim();
283
+ }
284
+ catch {
285
+ // Use default
286
+ }
287
+ // Generate update guide content
288
+ let updateGuide = '';
289
+ if (lang === 'ko') {
290
+ updateGuide = `# UPDATE_GUIDE.md - CodeSyncer μ—…λ°μ΄νŠΈ μž‘μ—…
291
+
292
+ > **AI μ–΄μ‹œμŠ€ν„΄νŠΈμš©**: 이 λ¬Έμ„œμ˜ μ§€μ‹œμ‚¬ν•­μ„ 따라 ${isHardUpdate ? 'λͺ¨λ“  νŒŒμΌμ„ μŠ€μΊ”ν•˜κ³  μ—…λ°μ΄νŠΈν•˜μ„Έμš”' : 'λˆ„λ½λœ νŒŒμΌλ“€μ„ μƒμ„±ν•˜μ„Έμš”'}.
293
+ >
294
+ > **ν”„λ‘œμ νŠΈ**: ${projectName}
295
+ > **μ—…λ°μ΄νŠΈ λ‚ μ§œ**: ${today}
296
+ > **μ—…λ°μ΄νŠΈ λͺ¨λ“œ**: ${isHardUpdate ? 'πŸ” ν•˜λ“œ μ—…λ°μ΄νŠΈ' : 'πŸ“ 일반 μ—…λ°μ΄νŠΈ'}
297
+
298
+ ---
299
+
300
+ ${isHardUpdate ? `
301
+ ## πŸ” ν•˜λ“œ μ—…λ°μ΄νŠΈ λͺ¨λ“œ
302
+
303
+ **λͺ¨λ“  λ ˆν¬μ§€ν† λ¦¬μ˜ κΈ°μ‘΄ νŒŒμΌλ“€μ„ μŠ€μΊ”ν•˜κ³  μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€:**
304
+
305
+ ### μž‘μ—… λͺ©λ‘
306
+
307
+ 1. **각 λ ˆν¬μ§€ν† λ¦¬μ˜ .claude/ 폴더 μŠ€μΊ”**
308
+ 2. **κΈ°μ‘΄ 파일 뢄석 및 μ—…λ°μ΄νŠΈ:**
309
+ - \`ARCHITECTURE.md\` - μ΅œμ‹  폴더 ꡬ쑰 반영 (μƒˆ 파일/폴더 μΆ”κ°€ μ—¬λΆ€ 확인)
310
+ - \`CLAUDE.md\` - μƒˆλ‘œμš΄ νŒ¨ν„΄/κ·œμΉ™ 발견 μ‹œ μΆ”κ°€
311
+ - \`COMMENT_GUIDE.md\` - ν…œν”Œλ¦Ώ μ΅œμ‹  버전과 비ꡐ
312
+ - \`DECISIONS.md\` - ν˜•μ‹ 검증 (λˆ„λ½ μ—†λŠ”μ§€ 확인)
313
+ 3. **λˆ„λ½λœ 파일 생성** (μ•„λž˜ λͺ©λ‘ μ°Έκ³ )
314
+
315
+ ---
316
+ ` : ''}
317
+
318
+ ## πŸ“‹ λ ˆν¬μ§€ν† λ¦¬ λͺ©λ‘ 및 μž‘μ—…
319
+
320
+ ${isHardUpdate ? `
321
+ **λͺ¨λ“  λ ˆν¬μ§€ν† λ¦¬ (${foundRepos.length}개):**
322
+
323
+ ${foundRepos.map(repo => {
324
+ const needsSetup = reposNeedingSetup.find(r => r.repo === repo.name);
325
+ const missingFiles = needsSetup ? needsSetup.missingFiles : [];
326
+ return `
327
+ ### πŸ“ ${repo.name}/
328
+
329
+ ${missingFiles.length > 0 ? `
330
+ **⚠️ λˆ„λ½λœ 파일:**
331
+ ${missingFiles.map(f => `- \`.claude/${f}\``).join('\n')}
332
+ ` : '**βœ“ λͺ¨λ“  ν•„μˆ˜ 파일 쑴재**'}
333
+
334
+ **πŸ” ν•˜λ“œ μ—…λ°μ΄νŠΈ μž‘μ—…:**
335
+ 1. \`${repo.name}/.claude/\` ν΄λ”λ‘œ 이동
336
+ 2. **κΈ°μ‘΄ 파일 μŠ€μΊ” 및 μ—…λ°μ΄νŠΈ:**
337
+ - \`ARCHITECTURE.md\`: μ΅œμ‹  폴더 ꡬ쑰 반영
338
+ - μƒˆ 파일/폴더 μΆ”κ°€λ˜μ—ˆλŠ”μ§€ 확인
339
+ - 파일 톡계 μ—…λ°μ΄νŠΈ (총 파일 수, μ½”λ“œ 라인 수 λ“±)
340
+ - \`CLAUDE.md\`: μƒˆλ‘œμš΄ νŒ¨ν„΄/κ·œμΉ™ μΆ”κ°€
341
+ - λ°˜λ³΅λ˜λŠ” μ½”λ“œ νŒ¨ν„΄ 발견 μ‹œ ν…œν”Œλ¦ΏμœΌλ‘œ μΆ”κ°€
342
+ - μƒˆλ‘œμš΄ μ½”λ”© κ·œμΉ™ 발견 μ‹œ μΆ”κ°€
343
+ - \`COMMENT_GUIDE.md\`: ν…œν”Œλ¦Ώ μ΅œμ‹  버전 확인
344
+ - \`DECISIONS.md\`: ν˜•μ‹ 검증
345
+ ${missingFiles.length > 0 ? `3. **λˆ„λ½λœ 파일 생성:**
346
+ ${missingFiles.map(f => ` - \`.claude/${f}\``).join('\n')}
347
+ ` : ''}
348
+ **μ€‘μš” 원칙:**
349
+ - ❌ **μ ˆλŒ€ μΆ”λ‘  κΈˆμ§€**: λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 수치, API URL, λ³΄μ•ˆ μ„€μ •
350
+ - βœ… **λ°˜λ“œμ‹œ 질문**: μ•Œ 수 μ—†λŠ” μ •λ³΄λŠ” μ‚¬μš©μžμ—κ²Œ 확인
351
+ - βœ… **μ‹€μ œ μ½”λ“œ 읽기**: μΆ”μΈ‘ν•˜μ§€ 말고 μ‹€μ œ 파일 λ‚΄μš© 확인
352
+ - βœ… **μ‚¬μš©μž 확인**: μ—…λ°μ΄νŠΈ 전에 변경사항 보여주고 확인 λ°›κΈ°
353
+ `;
354
+ }).join('\n---\n')}
355
+ ` : `
356
+ **λˆ„λ½λœ 파일이 μžˆλŠ” λ ˆν¬μ§€ν† λ¦¬:**
357
+
358
+ ${reposNeedingSetup.map(({ repo, missingFiles }) => `
359
+ ### πŸ“ ${repo}/
360
+
361
+ **λˆ„λ½λœ 파일:**
362
+ ${missingFiles.map(f => `- \`.claude/${f}\``).join('\n')}
363
+
364
+ **μž‘μ—…:**
365
+ 1. \`${repo}/.claude/\` ν΄λ”λ‘œ 이동
366
+ 2. λ ˆν¬μ§€ν† λ¦¬ 뢄석:
367
+ - μ‹€μ œ 파일 ꡬ쑰 μŠ€μΊ”
368
+ - package.json λ˜λŠ” μ˜μ‘΄μ„± 파일 읽기
369
+ - μ½”λ“œ νŒ¨ν„΄ 확인
370
+ - ν”„λ‘œμ νŠΈ νƒ€μž… νŒŒμ•… (frontend/backend/mobile/fullstack)
371
+ 3. λˆ„λ½λœ 각 파일 생성:
372
+ ${missingFiles.map(f => ` - **${f}**: \`../templates/ko/${f.toLowerCase().replace('.md', '_template.md')}\` μ°Έκ³ `).join('\n')}
373
+
374
+ **μ€‘μš” 원칙:**
375
+ - ❌ **μ ˆλŒ€ μΆ”λ‘  κΈˆμ§€**: λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 수치, API URL, λ³΄μ•ˆ μ„€μ •
376
+ - βœ… **λ°˜λ“œμ‹œ 질문**: μ•Œ 수 μ—†λŠ” μ •λ³΄λŠ” μ‚¬μš©μžμ—κ²Œ 확인
377
+ - βœ… **μ‹€μ œ μ½”λ“œ 읽기**: μΆ”μΈ‘ν•˜μ§€ 말고 μ‹€μ œ 파일 λ‚΄μš© 확인
378
+ `).join('\n---\n')}
379
+ `}
380
+
381
+ ---
382
+
383
+ ## πŸš€ μž‘μ—… μˆœμ„œ
384
+
385
+ ${isHardUpdate ? `
386
+ ### ν•˜λ“œ μ—…λ°μ΄νŠΈ μž‘μ—… 흐름:
387
+
388
+ 각 λ ˆν¬μ§€ν† λ¦¬λ§ˆλ‹€:
389
+
390
+ **1단계: κΈ°μ‘΄ 파일 μŠ€μΊ”**
391
+ \`\`\`
392
+ "${foundRepos[0]?.name} λ ˆν¬μ§€ν† λ¦¬μ˜ .claude/ 폴더 μŠ€μΊ”ν•΄μ€˜"
393
+ \`\`\`
394
+
395
+ **2단계: 변경사항 뢄석**
396
+ - ARCHITECTURE.md의 폴더 ꡬ쑰와 μ‹€μ œ 폴더 ꡬ쑰 비ꡐ
397
+ - μƒˆ 파일/폴더 μΆ”κ°€ μ—¬λΆ€ 확인
398
+ - 파일 톡계 μž¬κ³„μ‚°
399
+
400
+ **3단계: μ‚¬μš©μžμ—κ²Œ 변경사항 μ œμ‹œ**
401
+ \`\`\`
402
+ 발견된 변경사항:
403
+ - μƒˆ 파일 10개 좔가됨
404
+ - src/new-feature/ 폴더 좔가됨
405
+ - 총 파일 수: 150 β†’ 160
406
+
407
+ 이 λ‚΄μš©μ„ ARCHITECTURE.md에 λ°˜μ˜ν• κΉŒμš”?
408
+ \`\`\`
409
+
410
+ **4단계: 승인 ν›„ μ—…λ°μ΄νŠΈ**
411
+ μ‚¬μš©μž 확인 받은 ν›„ 파일 μ—…λ°μ΄νŠΈ
412
+
413
+ **5단계: λˆ„λ½λœ 파일 생성** (μžˆλŠ” 경우)
414
+ ` : `
415
+ ### 일반 μ—…λ°μ΄νŠΈ μž‘μ—… 흐름:
416
+
417
+ 각 λ ˆν¬μ§€ν† λ¦¬λ§ˆλ‹€:
418
+
419
+ **1단계: λ ˆν¬μ§€ν† λ¦¬ 뢄석**
420
+ \`\`\`
421
+ "${reposNeedingSetup[0]?.repo || foundRepos[0]?.name} λ ˆν¬μ§€ν† λ¦¬ λΆ„μ„ν•΄μ€˜"
422
+ \`\`\`
423
+
424
+ **2단계: μ‚¬μš©μž 확인**
425
+ 뢄석 κ²°κ³Όλ₯Ό μ œμ‹œν•˜κ³  μ‚¬μš©μž 확인:
426
+ - ν”„λ‘œμ νŠΈ νƒ€μž…μ΄ λ§žλ‚˜μš”?
427
+ - 기술 μŠ€νƒμ΄ μ •ν™•ν•œκ°€μš”?
428
+ - μ£Όμš” κΈ°λŠ₯이 λΉ μ§„ 게 μ—†λ‚˜μš”?
429
+
430
+ **3단계: λˆ„λ½λœ 파일 생성**
431
+ 확인 ν›„ λˆ„λ½λœ νŒŒμΌλ“€ 생성:
432
+ - CLAUDE.md - μ½”λ”© κ·œμΉ™
433
+ - ARCHITECTURE.md - ν”„λ‘œμ νŠΈ ꡬ쑰
434
+ - COMMENT_GUIDE.md - 주석 κ°€μ΄λ“œ
435
+ - DECISIONS.md - μ˜λ…Ό 기둝
436
+
437
+ **4단계: 검증**
438
+ \`\`\`bash
439
+ ls ${reposNeedingSetup[0]?.repo || foundRepos[0]?.name}/.claude/
440
+ \`\`\`
441
+
442
+ λͺ¨λ“  파일이 μƒμ„±λ˜μ—ˆλŠ”μ§€ 확인
443
+ `}
444
+
445
+ ---
446
+
447
+ ## πŸ’‘ ν…œν”Œλ¦Ώ μœ„μΉ˜
448
+
449
+ ν•„μš”ν•œ ν…œν”Œλ¦Ώ νŒŒμΌλ“€:
450
+ - \`src/templates/ko/claude.md\`
451
+ - \`src/templates/ko/architecture.md\`
452
+ - \`src/templates/ko/comment_guide.md\`
453
+ - \`src/templates/ko/decisions.md\`
454
+
455
+ **주의**: ν…œν”Œλ¦Ώμ˜ ν”Œλ ˆμ΄μŠ€ν™€λ” ([PROJECT_NAME], [TECH_STACK] λ“±)λ₯Ό μ‹€μ œ κ°’μœΌλ‘œ κ΅μ²΄ν•˜μ„Έμš”!
456
+
457
+ ---
458
+
459
+ ## βœ… μ™„λ£Œ 쑰건
460
+
461
+ λͺ¨λ“  λ ˆν¬μ§€ν† λ¦¬μ—μ„œ:
462
+ - \`.claude/\` 폴더 쑴재
463
+ - 4개 ν•„μˆ˜ 파일 λͺ¨λ‘ 생성
464
+ - 각 νŒŒμΌμ— μ‹€μ œ ν”„λ‘œμ νŠΈ 정보 반영
465
+ - ν”Œλ ˆμ΄μŠ€ν™€λ” μ—†μŒ
466
+
467
+ ---
468
+
469
+ ## πŸ—‘οΈ μž‘μ—… μ™„λ£Œ ν›„
470
+
471
+ λͺ¨λ“  λˆ„λ½λœ νŒŒμΌμ„ μƒμ„±ν–ˆλ‹€λ©΄:
472
+
473
+ \`\`\`
474
+ "UPDATE_GUIDE.md μ‚­μ œν•΄μ€˜"
475
+ \`\`\`
476
+
477
+ λ˜λŠ” 직접 μ‚­μ œ:
478
+ \`\`\`bash
479
+ rm .codesyncer/UPDATE_GUIDE.md
480
+ \`\`\`
481
+
482
+ ---
483
+
484
+ **이 νŒŒμΌμ€ \`codesyncer update\`에 μ˜ν•΄ μžλ™ μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.**
485
+ **μž‘μ—… μ™„λ£Œ ν›„ 이 νŒŒμΌμ€ μ‚­μ œλ©λ‹ˆλ‹€.**
486
+ `;
487
+ }
488
+ else {
489
+ updateGuide = `# UPDATE_GUIDE.md - CodeSyncer Update Tasks
490
+
491
+ > **For AI Assistant**: Follow the instructions in this document to ${isHardUpdate ? 'scan and update all files' : 'generate missing files'}.
492
+ >
493
+ > **Project**: ${projectName}
494
+ > **Update Date**: ${today}
495
+ > **Update Mode**: ${isHardUpdate ? 'πŸ” Hard Update' : 'πŸ“ Normal Update'}
496
+
497
+ ---
498
+
499
+ ${isHardUpdate ? `
500
+ ## πŸ” Hard Update Mode
501
+
502
+ **Scan and update all existing files in every repository:**
503
+
504
+ ### Task List
505
+
506
+ 1. **Scan each repository's .claude/ folder**
507
+ 2. **Analyze and update existing files:**
508
+ - \`ARCHITECTURE.md\` - Reflect latest folder structure (check for new files/folders)
509
+ - \`CLAUDE.md\` - Add new patterns/rules when discovered
510
+ - \`COMMENT_GUIDE.md\` - Compare with latest template version
511
+ - \`DECISIONS.md\` - Validate format (check for missing entries)
512
+ 3. **Generate missing files** (see list below)
513
+
514
+ ---
515
+ ` : ''}
516
+
517
+ ## πŸ“‹ Repository List and Tasks
518
+
519
+ ${isHardUpdate ? `
520
+ **All Repositories (${foundRepos.length}):**
521
+
522
+ ${foundRepos.map(repo => {
523
+ const needsSetup = reposNeedingSetup.find(r => r.repo === repo.name);
524
+ const missingFiles = needsSetup ? needsSetup.missingFiles : [];
525
+ return `
526
+ ### πŸ“ ${repo.name}/
527
+
528
+ ${missingFiles.length > 0 ? `
529
+ **⚠️ Missing Files:**
530
+ ${missingFiles.map(f => `- \`.claude/${f}\``).join('\n')}
531
+ ` : '**βœ“ All Required Files Exist**'}
532
+
533
+ **πŸ” Hard Update Tasks:**
534
+ 1. Navigate to \`${repo.name}/.claude/\`
535
+ 2. **Scan and update existing files:**
536
+ - \`ARCHITECTURE.md\`: Reflect latest folder structure
537
+ - Check if new files/folders added
538
+ - Update file statistics (total files, lines of code, etc.)
539
+ - \`CLAUDE.md\`: Add new patterns/rules
540
+ - Add repeated code patterns as templates
541
+ - Add newly discovered coding rules
542
+ - \`COMMENT_GUIDE.md\`: Check latest template version
543
+ - \`DECISIONS.md\`: Validate format
544
+ ${missingFiles.length > 0 ? `3. **Generate missing files:**
545
+ ${missingFiles.map(f => ` - \`.claude/${f}\``).join('\n')}
546
+ ` : ''}
547
+ **Important Principles:**
548
+ - ❌ **Never Infer**: Business logic numbers, API URLs, security settings
549
+ - βœ… **Always Ask**: Confirm unknown information with user
550
+ - βœ… **Read Actual Code**: Don't guess, read actual file contents
551
+ - βœ… **User Confirmation**: Show changes and get approval before updating
552
+ `;
553
+ }).join('\n---\n')}
554
+ ` : `
555
+ **Repositories with Missing Files:**
556
+
557
+ ${reposNeedingSetup.map(({ repo, missingFiles }) => `
558
+ ### πŸ“ ${repo}/
559
+
560
+ **Missing files:**
561
+ ${missingFiles.map(f => `- \`.claude/${f}\``).join('\n')}
562
+
563
+ **Tasks:**
564
+ 1. Navigate to \`${repo}/.claude/\`
565
+ 2. Analyze repository:
566
+ - Scan actual file structure
567
+ - Read package.json or dependency files
568
+ - Check code patterns
569
+ - Identify project type (frontend/backend/mobile/fullstack)
570
+ 3. Generate each missing file:
571
+ ${missingFiles.map(f => ` - **${f}**: Reference \`../templates/en/${f.toLowerCase().replace('.md', '_template.md')}\``).join('\n')}
572
+
573
+ **Important Principles:**
574
+ - ❌ **Never Infer**: Business logic numbers, API URLs, security settings
575
+ - βœ… **Always Ask**: Confirm unknown information with user
576
+ - βœ… **Read Actual Code**: Don't guess, read actual file contents
577
+ `).join('\n---\n')}
578
+ `}
579
+
580
+ ---
581
+
582
+ ## πŸš€ Workflow
583
+
584
+ ${isHardUpdate ? `
585
+ ### Hard Update Workflow:
586
+
587
+ For each repository:
588
+
589
+ **Step 1: Scan Existing Files**
590
+ \`\`\`
591
+ "Scan ${foundRepos[0]?.name} repository's .claude/ folder"
592
+ \`\`\`
593
+
594
+ **Step 2: Analyze Changes**
595
+ - Compare ARCHITECTURE.md folder structure with actual folder structure
596
+ - Check for new files/folders added
597
+ - Recalculate file statistics
598
+
599
+ **Step 3: Present Changes to User**
600
+ \`\`\`
601
+ Changes detected:
602
+ - 10 new files added
603
+ - src/new-feature/ folder added
604
+ - Total files: 150 β†’ 160
605
+
606
+ Update ARCHITECTURE.md with these changes?
607
+ \`\`\`
608
+
609
+ **Step 4: Update After Approval**
610
+ Update files after user confirmation
611
+
612
+ **Step 5: Generate Missing Files** (if any)
613
+ ` : `
614
+ ### Normal Update Workflow:
615
+
616
+ For each repository:
617
+
618
+ **Step 1: Analyze Repository**
619
+ \`\`\`
620
+ "Analyze ${reposNeedingSetup[0]?.repo || foundRepos[0]?.name} repository"
621
+ \`\`\`
622
+
623
+ **Step 2: User Confirmation**
624
+ Present analysis results and confirm with user:
625
+ - Is the project type correct?
626
+ - Is the tech stack accurate?
627
+ - Are there any missing main features?
628
+
629
+ **Step 3: Generate Missing Files**
630
+ After confirmation, create missing files:
631
+ - CLAUDE.md - Coding rules
632
+ - ARCHITECTURE.md - Project structure
633
+ - COMMENT_GUIDE.md - Comment guide
634
+ - DECISIONS.md - Decision log
635
+
636
+ **Step 4: Verification**
637
+ \`\`\`bash
638
+ ls ${reposNeedingSetup[0]?.repo || foundRepos[0]?.name}/.claude/
639
+ \`\`\`
640
+
641
+ Verify all files are created
642
+ `}
643
+
644
+ ---
645
+
646
+ ## πŸ’‘ Template Locations
647
+
648
+ Required template files:
649
+ - \`src/templates/en/claude.md\`
650
+ - \`src/templates/en/architecture.md\`
651
+ - \`src/templates/en/comment_guide.md\`
652
+ - \`src/templates/en/decisions.md\`
653
+
654
+ **Note**: Replace template placeholders ([PROJECT_NAME], [TECH_STACK], etc.) with actual values!
655
+
656
+ ---
657
+
658
+ ## βœ… Completion Criteria
659
+
660
+ For all repositories:
661
+ - \`.claude/\` folder exists
662
+ - All 4 required files created
663
+ - Each file reflects actual project information
664
+ - No placeholders remaining
665
+
666
+ ---
667
+
668
+ ## πŸ—‘οΈ After Completion
669
+
670
+ Once all missing files are generated:
671
+
672
+ \`\`\`
673
+ "Delete UPDATE_GUIDE.md"
674
+ \`\`\`
675
+
676
+ Or delete manually:
677
+ \`\`\`bash
678
+ rm .codesyncer/UPDATE_GUIDE.md
679
+ \`\`\`
680
+
681
+ ---
682
+
683
+ **This file was automatically generated by \`codesyncer update\`.**
684
+ **This file will be deleted after tasks are completed.**
685
+ `;
686
+ }
687
+ // Delete existing UPDATE_GUIDE.md if exists (always create fresh)
688
+ if (await fs.pathExists(updateGuidePath)) {
689
+ await fs.remove(updateGuidePath);
690
+ }
691
+ await fs.writeFile(updateGuidePath, updateGuide, 'utf-8');
692
+ spinner.succeed(lang === 'ko' ? 'UPDATE_GUIDE.md 생성 μ™„λ£Œ!' : 'UPDATE_GUIDE.md created!');
693
+ console.log(chalk_1.default.green(` βœ“ ${updateGuidePath}\n`));
694
+ console.log(chalk_1.default.gray(lang === 'ko'
695
+ ? ' πŸ’‘ 이 νŒŒμΌμ€ μž‘μ—… μ™„λ£Œ ν›„ μ‚­μ œλ©λ‹ˆλ‹€'
696
+ : ' πŸ’‘ This file will be deleted after tasks are completed\n'));
697
+ // Show instructions
698
+ console.log(chalk_1.default.bold(lang === 'ko' ? '\nπŸ€– λ‹€μŒ 단계 (AI μ–΄μ‹œμŠ€ν„΄νŠΈμ—κ²Œ):' : '\nπŸ€– Next Steps (Tell your AI):'));
699
+ console.log(chalk_1.default.gray('─'.repeat(60)));
700
+ console.log();
701
+ console.log(chalk_1.default.yellow(lang === 'ko'
702
+ ? ' ".codesyncer/UPDATE_GUIDE.md 읽고 μ§€μ‹œμ‚¬ν•­λŒ€λ‘œ λˆ„λ½λœ νŒŒμΌλ“€ μƒμ„±ν•΄μ€˜"'
703
+ : ' "Read .codesyncer/UPDATE_GUIDE.md and generate missing files as instructed"'));
704
+ console.log();
705
+ console.log(chalk_1.default.gray(lang === 'ko'
706
+ ? ' βœ“ μž‘μ—… μ™„λ£Œ ν›„: "UPDATE_GUIDE.md μ‚­μ œν•΄μ€˜"'
707
+ : ' βœ“ After completion: "Delete UPDATE_GUIDE.md"'));
708
+ console.log();
709
+ console.log(chalk_1.default.gray('─'.repeat(60)));
710
+ console.log();
711
+ }
712
+ catch (error) {
713
+ spinner.fail(lang === 'ko' ? 'UPDATE_GUIDE.md 생성 μ‹€νŒ¨' : 'Failed to create UPDATE_GUIDE.md');
714
+ console.error(chalk_1.default.red(`Error: ${error}\n`));
715
+ }
716
+ }
192
717
  }
718
+ console.log(chalk_1.default.bold.green('\nβœ… Update complete!\n'));
193
719
  }
194
720
  //# sourceMappingURL=update.js.map
@@ -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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"}
package/dist/index.js CHANGED
@@ -80,6 +80,7 @@ program
80
80
  .command('update')
81
81
  .description('Update project structure and documentation')
82
82
  .option('-a, --ai <tool>', 'AI tool (currently: claude only)', 'claude')
83
+ .option('--hard', 'Deep scan and update all existing files (not just missing files)')
83
84
  .action(update_1.updateCommand);
84
85
  program
85
86
  .command('add-repo')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAqD;AACrD,2CAA6B;AAC7B,uCAAyB;AAEzB,iCAAiC;AACjC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,OAAO,CAAC,GAAG,OAAO,6CAA6C;IAC9D,eAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC;IAClF,eAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;KAC/E,WAAW,CAAC,OAAO,EAAE;EACtB,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC;IACzC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;EAElB,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC;IAC3D,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;EAEjB,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC;mCACU,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC;mCAC/C,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC;mCACxC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC;GAC/E,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACvE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACvE,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACvE,MAAM,CAAC,yBAAc,CAAC,CAAC;AAE1B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAqD;AACrD,2CAA6B;AAC7B,uCAAyB;AAEzB,iCAAiC;AACjC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,OAAO,CAAC,GAAG,OAAO,6CAA6C;IAC9D,eAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC;IAClF,eAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;KAC/E,WAAW,CAAC,OAAO,EAAE;EACtB,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC;IACzC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;EAElB,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC;IAC3D,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;EAEjB,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC;mCACU,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC;mCAC/C,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC;mCACxC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC;GAC/E,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACvE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACvE,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC;KACpF,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACvE,MAAM,CAAC,yBAAc,CAAC,CAAC;AAE1B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -10,6 +10,7 @@ export interface InitOptions {
10
10
  }
11
11
  export interface UpdateOptions {
12
12
  ai: AITool;
13
+ hard?: boolean;
13
14
  }
14
15
  export interface AddRepoOptions {
15
16
  lang: Language;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE9B,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,WAAW,CAAC;KACnB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC;AAGD,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,cAAc,+DAMjB,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE9B,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,WAAW,CAAC;KACnB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC;AAGD,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,cAAc,+DAMjB,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAqFA,oFAAoF;AACvE,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,QAAQ,EAAG,qDAAqD;CAChE,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,MAAM;IACN,WAAW;IACX,UAAU;IACV,MAAM;IACN,SAAS;CACD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAsFA,oFAAoF;AACvE,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,QAAQ,EAAG,qDAAqD;CAChE,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,MAAM;IACN,WAAW;IACX,UAAU;IACV,MAAM;IACN,SAAS;CACD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesyncer",
3
- "version": "2.1.3",
3
+ "version": "2.2.1",
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",