codesyncer 2.2.1 → 2.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 +42 -9
- package/README.md +42 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +78 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +108 -95
- package/dist/commands/update.js.map +1 -1
- package/dist/templates/en/setup_guide_single.md +324 -0
- package/dist/templates/ko/setup_guide_single.md +324 -0
- package/dist/utils/scanner.d.ts +9 -1
- package/dist/utils/scanner.d.ts.map +1 -1
- package/dist/utils/scanner.js +48 -33
- package/dist/utils/scanner.js.map +1 -1
- package/package.json +1 -1
- package/src/templates/en/setup_guide_single.md +324 -0
- package/src/templates/ko/setup_guide_single.md +324 -0
package/dist/utils/scanner.js
CHANGED
|
@@ -33,44 +33,17 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.isCurrentDirRepository = isCurrentDirRepository;
|
|
36
37
|
exports.scanForRepositories = scanForRepositories;
|
|
37
38
|
exports.hasMasterSetup = hasMasterSetup;
|
|
39
|
+
exports.hasSingleRepoSetup = hasSingleRepoSetup;
|
|
38
40
|
const fs = __importStar(require("fs-extra"));
|
|
39
41
|
const path = __importStar(require("path"));
|
|
40
42
|
/**
|
|
41
|
-
*
|
|
42
|
-
* Looks for folders that contain package.json, git repos, or common project structures
|
|
43
|
+
* Check if current directory itself is a repository (for single-repo mode)
|
|
43
44
|
*/
|
|
44
|
-
async function
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
const entries = await fs.readdir(rootPath, { withFileTypes: true });
|
|
48
|
-
for (const entry of entries) {
|
|
49
|
-
if (!entry.isDirectory())
|
|
50
|
-
continue;
|
|
51
|
-
// Skip node_modules, .git, dist, build folders
|
|
52
|
-
if (['node_modules', '.git', 'dist', 'build', '.next', 'coverage'].includes(entry.name)) {
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
const folderPath = path.join(rootPath, entry.name);
|
|
56
|
-
const isRepo = await isValidRepository(folderPath);
|
|
57
|
-
if (isRepo) {
|
|
58
|
-
const hasCodeSyncer = await hasCodeSyncerSetup(folderPath);
|
|
59
|
-
repos.push({
|
|
60
|
-
name: entry.name,
|
|
61
|
-
path: folderPath,
|
|
62
|
-
type: undefined, // AI will analyze
|
|
63
|
-
description: undefined, // AI will analyze
|
|
64
|
-
techStack: undefined, // AI will analyze
|
|
65
|
-
hasCodeSyncer,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
console.error('Error scanning directories:', error);
|
|
72
|
-
}
|
|
73
|
-
return repos;
|
|
45
|
+
async function isCurrentDirRepository(dirPath) {
|
|
46
|
+
return isValidRepository(dirPath);
|
|
74
47
|
}
|
|
75
48
|
/**
|
|
76
49
|
* Check if a folder is a valid repository
|
|
@@ -109,6 +82,41 @@ async function isValidRepository(folderPath) {
|
|
|
109
82
|
return false;
|
|
110
83
|
}
|
|
111
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Scan current directory for potential repository folders
|
|
87
|
+
* Looks for folders that contain package.json, git repos, or common project structures
|
|
88
|
+
*/
|
|
89
|
+
async function scanForRepositories(rootPath) {
|
|
90
|
+
const repos = [];
|
|
91
|
+
try {
|
|
92
|
+
const entries = await fs.readdir(rootPath, { withFileTypes: true });
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
if (!entry.isDirectory())
|
|
95
|
+
continue;
|
|
96
|
+
// Skip node_modules, .git, dist, build folders
|
|
97
|
+
if (['node_modules', '.git', 'dist', 'build', '.next', 'coverage'].includes(entry.name)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const folderPath = path.join(rootPath, entry.name);
|
|
101
|
+
const isRepo = await isValidRepository(folderPath);
|
|
102
|
+
if (isRepo) {
|
|
103
|
+
const hasCodeSyncer = await hasCodeSyncerSetup(folderPath);
|
|
104
|
+
repos.push({
|
|
105
|
+
name: entry.name,
|
|
106
|
+
path: folderPath,
|
|
107
|
+
type: undefined, // AI will analyze
|
|
108
|
+
description: undefined, // AI will analyze
|
|
109
|
+
techStack: undefined, // AI will analyze
|
|
110
|
+
hasCodeSyncer,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error('Error scanning directories:', error);
|
|
117
|
+
}
|
|
118
|
+
return repos;
|
|
119
|
+
}
|
|
112
120
|
// All project analysis removed - AI will analyze during setup phase
|
|
113
121
|
// - Project type (frontend/backend/mobile/fullstack)
|
|
114
122
|
// - Tech stack
|
|
@@ -122,11 +130,18 @@ async function hasCodeSyncerSetup(folderPath) {
|
|
|
122
130
|
return (await fs.pathExists(claudePath)) || (await fs.pathExists(vibeSyncPath));
|
|
123
131
|
}
|
|
124
132
|
/**
|
|
125
|
-
* Check if master CodeSyncer setup exists in root
|
|
133
|
+
* Check if master CodeSyncer setup exists in root (multi-repo mode)
|
|
126
134
|
*/
|
|
127
135
|
async function hasMasterSetup(rootPath) {
|
|
128
136
|
const masterPath = path.join(rootPath, '.codesyncer');
|
|
129
137
|
const legacyMasterPath = path.join(rootPath, '.master');
|
|
130
138
|
return (await fs.pathExists(masterPath)) || (await fs.pathExists(legacyMasterPath));
|
|
131
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Check if single-repo CodeSyncer setup exists (single-repo mode)
|
|
142
|
+
*/
|
|
143
|
+
async function hasSingleRepoSetup(rootPath) {
|
|
144
|
+
const claudePath = path.join(rootPath, '.claude');
|
|
145
|
+
return fs.pathExists(claudePath);
|
|
146
|
+
}
|
|
132
147
|
//# sourceMappingURL=scanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wDAEC;AA6CD,kDAmCC;AAoBD,wCAKC;AAKD,gDAGC;AA1HD,6CAA+B;AAC/B,2CAA6B;AAG7B;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAAe;IAC1D,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,IAAI,CAAC;QACH,4CAA4C;QAC5C,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAClF,IAAI,cAAc;YAAE,OAAO,IAAI,CAAC;QAEhC,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAExB,iCAAiC;QACjC,MAAM,WAAW,GAAG;YAClB,SAAS,EAAS,OAAO;YACzB,kBAAkB,EAAE,SAAS;YAC7B,YAAY,EAAM,OAAO;YACzB,QAAQ,EAAU,KAAK;YACvB,cAAc,EAAI,eAAe;YACjC,cAAc,EAAI,eAAe;SAClC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAExB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEnC,+CAA+C;YAC/C,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxF,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEnD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE3D,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS,EAAE,kBAAkB;oBACnC,WAAW,EAAE,SAAS,EAAE,kBAAkB;oBAC1C,SAAS,EAAE,SAAS,EAAE,kBAAkB;oBACxC,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,qDAAqD;AACrD,eAAe;AACf,gBAAgB;AAEhB;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE1D,OAAO,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAExD,OAAO,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# 🤖 CodeSyncer Setup Guide for AI Assistants (Single Repository)
|
|
2
|
+
|
|
3
|
+
> **For AI Coding Assistants**: Read this document completely and follow the instructions to set up the CodeSyncer collaboration system.
|
|
4
|
+
>
|
|
5
|
+
> **Project**: [PROJECT_NAME]
|
|
6
|
+
> **GitHub**: https://github.com/[GITHUB_USERNAME]/[PROJECT_NAME]
|
|
7
|
+
> **Created**: [TODAY]
|
|
8
|
+
> **Mode**: Single Repository
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 📋 Your Mission
|
|
13
|
+
|
|
14
|
+
You are tasked with analyzing this repository and creating a comprehensive collaboration system. Follow these steps **interactively** - ask the user for confirmation at each major decision point.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 🎯 Step 1: Analyze the Repository
|
|
19
|
+
|
|
20
|
+
### Your Task
|
|
21
|
+
1. **Analyze this repository** by examining:
|
|
22
|
+
- File structure and dependencies
|
|
23
|
+
- Tech stack and frameworks
|
|
24
|
+
- Project purpose and architecture
|
|
25
|
+
- Existing code patterns
|
|
26
|
+
|
|
27
|
+
2. **Determine the following**:
|
|
28
|
+
- Primary function (backend, frontend, mobile, fullstack)
|
|
29
|
+
- Main technologies used
|
|
30
|
+
- Key features and modules
|
|
31
|
+
- Development patterns
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 🔄 Step 2: Interactive Setup Process
|
|
36
|
+
|
|
37
|
+
### 2.1 Confirm Repository Analysis
|
|
38
|
+
Present your analysis to the user:
|
|
39
|
+
```
|
|
40
|
+
📁 Repository: [PROJECT_NAME]
|
|
41
|
+
|
|
42
|
+
My analysis:
|
|
43
|
+
- Type: [backend/frontend/mobile/fullstack]
|
|
44
|
+
- Tech Stack: [detected stack]
|
|
45
|
+
- Description: [your generated description]
|
|
46
|
+
- Key Features: [list main features]
|
|
47
|
+
|
|
48
|
+
Is this analysis correct? Any adjustments needed?
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2.2 Ask Critical Questions
|
|
52
|
+
|
|
53
|
+
**⚠️ NEVER infer these - always ask:**
|
|
54
|
+
|
|
55
|
+
1. **API Endpoints** (for backend):
|
|
56
|
+
- "What is the main API base URL?"
|
|
57
|
+
- "Are there multiple API versions?"
|
|
58
|
+
|
|
59
|
+
2. **Business Logic**:
|
|
60
|
+
- "What are the key business rules I should know?"
|
|
61
|
+
- "Any specific pricing/payment policies?"
|
|
62
|
+
|
|
63
|
+
3. **Authentication**:
|
|
64
|
+
- "What authentication method is used?" (JWT, OAuth, Session, etc.)
|
|
65
|
+
- "Where are tokens stored?" (cookies, localStorage, etc.)
|
|
66
|
+
|
|
67
|
+
4. **Database**:
|
|
68
|
+
- "What database is used?"
|
|
69
|
+
- "Any critical schema information?"
|
|
70
|
+
|
|
71
|
+
5. **External Services**:
|
|
72
|
+
- "Which external APIs/services are integrated?"
|
|
73
|
+
- "Any API keys or credentials I should be aware of (without exposing them)?"
|
|
74
|
+
|
|
75
|
+
### 2.3 Identify Discussion Keywords
|
|
76
|
+
|
|
77
|
+
Ask the user:
|
|
78
|
+
```
|
|
79
|
+
For this project, which critical keywords should trigger automatic discussion pauses?
|
|
80
|
+
|
|
81
|
+
Suggested categories:
|
|
82
|
+
|
|
83
|
+
🔴 CRITICAL (Always pause):
|
|
84
|
+
- 💰 Payment/Billing: payment, billing, charge, refund, subscription, invoice, pricing, fee
|
|
85
|
+
- 🔐 Security/Auth: authentication, authorization, login, logout, session, token, jwt, password, encrypt, decrypt, hash, salt, oauth, permission, role, admin
|
|
86
|
+
- 🗑️ Data Deletion: delete, remove, drop, truncate, destroy, purge, erase
|
|
87
|
+
- 📜 Privacy/Legal: GDPR, CCPA, personal data, PII, privacy policy, terms of service, consent, compliance
|
|
88
|
+
|
|
89
|
+
🟡 IMPORTANT (Recommended pause):
|
|
90
|
+
- 🔌 External APIs: API integration, webhook, third-party, external service, API key, credentials
|
|
91
|
+
- 🗄️ Database Schema: migration, schema change, alter table, add column, drop column, index, constraint
|
|
92
|
+
- 🚀 Deployment/Infra: deploy, deployment, production, environment, server, hosting, domain, SSL, certificate
|
|
93
|
+
- 💾 Caching: cache strategy, redis, memcached, CDN, cache invalidation
|
|
94
|
+
- 📧 Email/Notifications: email sending, SMS, push notification, notification service
|
|
95
|
+
|
|
96
|
+
🟢 MINOR (Optional pause):
|
|
97
|
+
- ⚡ Performance: optimization, performance, caching, lazy loading, code splitting, bundle size
|
|
98
|
+
- 🧪 Testing: test strategy, testing framework, CI/CD, automated testing
|
|
99
|
+
- 📊 Logging/Monitoring: logging, monitoring, analytics, error tracking, APM
|
|
100
|
+
- 🎨 UI/UX: design system, theme, responsive, accessibility, internationalization
|
|
101
|
+
|
|
102
|
+
Which categories should I enable? (Recommend: CRITICAL + IMPORTANT)
|
|
103
|
+
Any custom keywords specific to your domain?
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 📝 Step 3: Generate Documentation Files
|
|
109
|
+
|
|
110
|
+
Create these files in `.claude/` folder:
|
|
111
|
+
|
|
112
|
+
### 3.1 CLAUDE.md
|
|
113
|
+
- Project information from your analysis
|
|
114
|
+
- Absolute rules (TypeScript strict mode, error handling, etc.)
|
|
115
|
+
- No-inference zones (business logic numbers, API URLs, security settings)
|
|
116
|
+
- Discussion-required keywords (from user's selection)
|
|
117
|
+
- Comment tag system (@codesyncer-* tags)
|
|
118
|
+
- Project-specific templates and patterns
|
|
119
|
+
|
|
120
|
+
Use template: `./templates/[lang]/claude.md`
|
|
121
|
+
- Replace [PROJECT_NAME], [PROJECT_TYPE], [TECH_STACK]
|
|
122
|
+
- Replace [KEYWORDS] with user-confirmed keywords
|
|
123
|
+
- Add project-specific rules discovered during analysis
|
|
124
|
+
|
|
125
|
+
### 3.2 ARCHITECTURE.md
|
|
126
|
+
- Complete folder structure (scan actual directories)
|
|
127
|
+
- File statistics
|
|
128
|
+
- Comment tag statistics (initial: all 0)
|
|
129
|
+
- Tech stack details
|
|
130
|
+
- Dependencies from package.json
|
|
131
|
+
|
|
132
|
+
Use template: `./templates/[lang]/architecture.md`
|
|
133
|
+
- Actually scan and list real folder structure
|
|
134
|
+
- List actual dependencies
|
|
135
|
+
|
|
136
|
+
### 3.3 COMMENT_GUIDE.md ⭐ **Core Document**
|
|
137
|
+
- **Manage all context with comments** (quality standards, coding standards, all decisions)
|
|
138
|
+
- 10 comment tag system (5 basic + 5 extended)
|
|
139
|
+
- Real examples: quality standards, performance optimization, security, error handling, etc.
|
|
140
|
+
- Principle: Record directly in code instead of separate docs
|
|
141
|
+
|
|
142
|
+
Use template: `./templates/[lang]/comment_guide.md`
|
|
143
|
+
- Use as-is (includes all context management examples)
|
|
144
|
+
- AI follows these patterns for writing comments
|
|
145
|
+
|
|
146
|
+
### 3.4 DECISIONS.md
|
|
147
|
+
- Decision log template
|
|
148
|
+
- Category definitions
|
|
149
|
+
- Empty decision records (to be filled during development)
|
|
150
|
+
|
|
151
|
+
Use template: `./templates/[lang]/decisions.md`
|
|
152
|
+
- Use as-is (decisions added during work)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 🌐 Step 4: Generate Root CLAUDE.md
|
|
157
|
+
|
|
158
|
+
Create `CLAUDE.md` at the repository root (automatically discovered by Claude):
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
# CLAUDE.md - [PROJECT_NAME]
|
|
162
|
+
|
|
163
|
+
> **Powered by CodeSyncer** - AI Collaboration System
|
|
164
|
+
> **Mode**: Single Repository
|
|
165
|
+
|
|
166
|
+
## 📋 Quick Start
|
|
167
|
+
|
|
168
|
+
Read `.claude/CLAUDE.md` for detailed coding guidelines.
|
|
169
|
+
|
|
170
|
+
## 🔗 Documentation
|
|
171
|
+
|
|
172
|
+
- **Coding Rules**: `.claude/CLAUDE.md`
|
|
173
|
+
- **Project Structure**: `.claude/ARCHITECTURE.md`
|
|
174
|
+
- **Comment Guide**: `.claude/COMMENT_GUIDE.md`
|
|
175
|
+
- **Decisions Log**: `.claude/DECISIONS.md`
|
|
176
|
+
|
|
177
|
+
## 🚀 Start Working
|
|
178
|
+
|
|
179
|
+
1. Read this file (done!)
|
|
180
|
+
2. Check `.claude/CLAUDE.md` for project rules
|
|
181
|
+
3. Ask questions if anything is unclear
|
|
182
|
+
4. Start coding!
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
**Project**: [PROJECT_NAME]
|
|
187
|
+
**Created**: [TODAY]
|
|
188
|
+
**Powered by**: CodeSyncer
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Important**: This file must exist for Claude to automatically load context at session start!
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## ✅ Step 5: Final Confirmation
|
|
196
|
+
|
|
197
|
+
After generating all files, present a summary:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
✅ CodeSyncer Setup Complete! (Single Repository Mode)
|
|
201
|
+
|
|
202
|
+
Created files:
|
|
203
|
+
📁 [PROJECT_NAME]/
|
|
204
|
+
├── CLAUDE.md ⭐ Claude reads this first
|
|
205
|
+
└── .claude/
|
|
206
|
+
├── CLAUDE.md (Coding rules)
|
|
207
|
+
├── ARCHITECTURE.md (Project structure)
|
|
208
|
+
├── COMMENT_GUIDE.md (Comment guide)
|
|
209
|
+
└── DECISIONS.md (Decision log)
|
|
210
|
+
|
|
211
|
+
Next Steps:
|
|
212
|
+
1. Review the generated files
|
|
213
|
+
2. Customize .claude/CLAUDE.md as needed
|
|
214
|
+
3. Start a new session or say "Read CLAUDE.md" to apply
|
|
215
|
+
|
|
216
|
+
💡 Claude automatically finds and reads root CLAUDE.md!
|
|
217
|
+
|
|
218
|
+
Ready to start using CodeSyncer!
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 🎨 Customization Guidelines
|
|
224
|
+
|
|
225
|
+
### For Backend Projects:
|
|
226
|
+
- Focus on API structure in ARCHITECTURE.md
|
|
227
|
+
- Add API endpoint documentation
|
|
228
|
+
- Emphasize security and data handling rules
|
|
229
|
+
- Include database schema if provided
|
|
230
|
+
|
|
231
|
+
### For Frontend Projects:
|
|
232
|
+
- Document component structure
|
|
233
|
+
- Include styling approach (CSS modules, Tailwind, etc.)
|
|
234
|
+
- Add state management patterns
|
|
235
|
+
- Document routing structure
|
|
236
|
+
|
|
237
|
+
### For Mobile Projects:
|
|
238
|
+
- Document screen navigation
|
|
239
|
+
- Include platform-specific notes (iOS/Android)
|
|
240
|
+
- Add native module integrations
|
|
241
|
+
- Document build/deployment process
|
|
242
|
+
|
|
243
|
+
### For Fullstack Projects:
|
|
244
|
+
- Combine backend + frontend guidelines
|
|
245
|
+
- Document API ↔ UI integration
|
|
246
|
+
- Include data flow patterns
|
|
247
|
+
- Add deployment strategy
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 🚨 Critical Rules for AI Assistants
|
|
252
|
+
|
|
253
|
+
1. **Always ask, never assume** for:
|
|
254
|
+
- Business logic numbers
|
|
255
|
+
- API endpoints
|
|
256
|
+
- Security configurations
|
|
257
|
+
- Database schemas
|
|
258
|
+
|
|
259
|
+
2. **Be thorough** in analysis:
|
|
260
|
+
- Read actual code, don't guess
|
|
261
|
+
- Check package.json dependencies
|
|
262
|
+
- Scan folder structure completely
|
|
263
|
+
- Identify code patterns
|
|
264
|
+
|
|
265
|
+
3. **Be interactive**:
|
|
266
|
+
- Ask for confirmation at each step
|
|
267
|
+
- Present your analysis before generating
|
|
268
|
+
- Allow user to correct your understanding
|
|
269
|
+
|
|
270
|
+
4. **Use @codesyncer-* tags** in all examples:
|
|
271
|
+
- All code comments use new format
|
|
272
|
+
- Explain @claude-* compatibility
|
|
273
|
+
- Show proper tag usage
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 📚 Template Placeholders
|
|
278
|
+
|
|
279
|
+
When generating files, replace these:
|
|
280
|
+
|
|
281
|
+
- `[PROJECT_NAME]` → User's project name
|
|
282
|
+
- `[PROJECT_TYPE]` → backend/frontend/mobile/fullstack
|
|
283
|
+
- `[TECH_STACK]` → Detected tech stack (comma-separated)
|
|
284
|
+
- `[TODAY]` → Current date (YYYY-MM-DD)
|
|
285
|
+
- `[GITHUB_USERNAME]` → User's GitHub username
|
|
286
|
+
- `[KEYWORDS]` → User-confirmed discussion keywords
|
|
287
|
+
- `[TEMPLATES]` → Project type-specific templates
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 🎯 Success Criteria
|
|
292
|
+
|
|
293
|
+
Setup is successful when:
|
|
294
|
+
- ✅ `.claude/` folder created with all 4 files
|
|
295
|
+
- ✅ Root CLAUDE.md created
|
|
296
|
+
- ✅ User confirmed all critical information
|
|
297
|
+
- ✅ No assumptions made about business logic or secrets
|
|
298
|
+
- ✅ All documentation uses @codesyncer-* tag format
|
|
299
|
+
- ✅ Project-specific patterns documented
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 🗑️ After Setup
|
|
304
|
+
|
|
305
|
+
Once setup is complete, you can delete this file:
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
"Delete .claude/SETUP_GUIDE.md"
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Or manually:
|
|
312
|
+
```bash
|
|
313
|
+
rm .claude/SETUP_GUIDE.md
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
**Version**: 1.0.0 (Powered by CodeSyncer)
|
|
319
|
+
**Mode**: Single Repository
|
|
320
|
+
**AI Tools**: Optimized for Claude Code | Compatible with: Cursor, GitHub Copilot, Continue.dev
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
*This setup guide is generated by CodeSyncer CLI. For issues or improvements, visit: https://github.com/bitjaru/codesyncer*
|