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.
@@ -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
- * Scan current directory for potential repository folders
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 scanForRepositories(rootPath) {
45
- const repos = [];
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":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesyncer",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
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,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*