codesyncer 1.0.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.
Files changed (61) hide show
  1. package/LICENSE +31 -0
  2. package/README.ko.md +417 -0
  3. package/README.md +417 -0
  4. package/bin/codesyncer.js +3 -0
  5. package/dist/commands/add-repo.d.ts +3 -0
  6. package/dist/commands/add-repo.d.ts.map +1 -0
  7. package/dist/commands/add-repo.js +145 -0
  8. package/dist/commands/add-repo.js.map +1 -0
  9. package/dist/commands/init.d.ts +3 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +489 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/update.d.ts +3 -0
  14. package/dist/commands/update.d.ts.map +1 -0
  15. package/dist/commands/update.js +123 -0
  16. package/dist/commands/update.js.map +1 -0
  17. package/dist/constants/keywords.d.ts +23 -0
  18. package/dist/constants/keywords.d.ts.map +1 -0
  19. package/dist/constants/keywords.js +133 -0
  20. package/dist/constants/keywords.js.map +1 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +52 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/templates/en/architecture.md +147 -0
  26. package/dist/templates/en/claude.md +267 -0
  27. package/dist/templates/en/comment_guide.md +324 -0
  28. package/dist/templates/en/decisions.md +227 -0
  29. package/dist/templates/en/master.md +179 -0
  30. package/dist/templates/ko/architecture.md +147 -0
  31. package/dist/templates/ko/claude.md +267 -0
  32. package/dist/templates/ko/comment_guide.md +324 -0
  33. package/dist/templates/ko/decisions.md +227 -0
  34. package/dist/templates/ko/master.md +179 -0
  35. package/dist/types.d.ts +78 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +16 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils/messages.d.ts +129 -0
  40. package/dist/utils/messages.d.ts.map +1 -0
  41. package/dist/utils/messages.js +168 -0
  42. package/dist/utils/messages.js.map +1 -0
  43. package/dist/utils/scanner.d.ts +11 -0
  44. package/dist/utils/scanner.d.ts.map +1 -0
  45. package/dist/utils/scanner.js +311 -0
  46. package/dist/utils/scanner.js.map +1 -0
  47. package/dist/utils/template-loader.d.ts +18 -0
  48. package/dist/utils/template-loader.d.ts.map +1 -0
  49. package/dist/utils/template-loader.js +496 -0
  50. package/dist/utils/template-loader.js.map +1 -0
  51. package/package.json +70 -0
  52. package/src/templates/en/architecture.md +147 -0
  53. package/src/templates/en/claude.md +267 -0
  54. package/src/templates/en/comment_guide.md +324 -0
  55. package/src/templates/en/decisions.md +227 -0
  56. package/src/templates/en/master.md +179 -0
  57. package/src/templates/ko/architecture.md +147 -0
  58. package/src/templates/ko/claude.md +267 -0
  59. package/src/templates/ko/comment_guide.md +324 -0
  60. package/src/templates/ko/decisions.md +227 -0
  61. package/src/templates/ko/master.md +179 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { KeywordCategory, ProjectType } from '../types';
2
+ /**
3
+ * Default keyword configurations for discussion triggers
4
+ * Organized by category and severity level
5
+ */
6
+ export declare const DEFAULT_KEYWORD_CATEGORIES: KeywordCategory[];
7
+ /**
8
+ * Quick setup preset - includes ALL keyword categories (auto-enabled)
9
+ */
10
+ export declare function getQuickSetupKeywords(projectType: ProjectType): KeywordCategory[];
11
+ /**
12
+ * Expert setup - user can select categories and add custom keywords
13
+ */
14
+ export declare function getExpertSetupKeywords(projectType: ProjectType): KeywordCategory[];
15
+ /**
16
+ * Format keywords for template insertion
17
+ */
18
+ export declare function formatKeywordsForTemplate(categories: KeywordCategory[], lang: 'ko' | 'en'): string;
19
+ /**
20
+ * Get default tech stack by project type
21
+ */
22
+ export declare function getDefaultTechStack(type: ProjectType): string[];
23
+ //# sourceMappingURL=keywords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../src/constants/keywords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAmB,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzE;;;GAGG;AAEH,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAiFvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,EAAE,CAIjF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,EAAE,CAGlF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAUlG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAS/D"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_KEYWORD_CATEGORIES = void 0;
4
+ exports.getQuickSetupKeywords = getQuickSetupKeywords;
5
+ exports.getExpertSetupKeywords = getExpertSetupKeywords;
6
+ exports.formatKeywordsForTemplate = formatKeywordsForTemplate;
7
+ exports.getDefaultTechStack = getDefaultTechStack;
8
+ /**
9
+ * Default keyword configurations for discussion triggers
10
+ * Organized by category and severity level
11
+ */
12
+ exports.DEFAULT_KEYWORD_CATEGORIES = [
13
+ {
14
+ name: 'Payment & Billing',
15
+ nameKo: '결제/과금',
16
+ severity: 'CRITICAL',
17
+ keywords: ['payment', 'pay', 'purchase', 'checkout', 'billing', 'subscription', 'charge', 'refund', 'cancel', '결제', '구매', '입금', '환불', '취소', '과금', '구독'],
18
+ description: 'Payment processing and billing operations',
19
+ descriptionKo: '결제 처리 및 과금 작업',
20
+ applicableTo: ['backend', 'frontend', 'fullstack'],
21
+ enabled: true,
22
+ },
23
+ {
24
+ name: 'Authentication & Authorization',
25
+ nameKo: '인증/권한',
26
+ severity: 'CRITICAL',
27
+ keywords: ['auth', 'login', 'logout', 'signin', 'signup', 'permission', 'role', 'access', 'admin', 'superuser', '인증', '로그인', '회원가입', '권한', '역할', '관리자'],
28
+ description: 'User authentication and authorization',
29
+ descriptionKo: '사용자 인증 및 권한 관리',
30
+ applicableTo: ['backend', 'frontend', 'mobile', 'fullstack'],
31
+ enabled: true,
32
+ },
33
+ {
34
+ name: 'Security & Encryption',
35
+ nameKo: '보안/암호화',
36
+ severity: 'CRITICAL',
37
+ keywords: ['security', 'encrypt', 'decrypt', 'hash', 'secret', 'key', 'token', 'cors', 'csrf', 'jwt', 'oauth', '암호화', '비밀키', 'session', '세션'],
38
+ description: 'Security configurations and encryption',
39
+ descriptionKo: '보안 설정 및 암호화',
40
+ applicableTo: ['backend', 'fullstack'],
41
+ enabled: true,
42
+ },
43
+ {
44
+ name: 'Data Deletion & Migration',
45
+ nameKo: '데이터 삭제/마이그레이션',
46
+ severity: 'CRITICAL',
47
+ keywords: ['delete', 'remove', 'destroy', 'drop', 'truncate', 'migrate', 'migration', 'schema', 'alter table', '삭제', '제거', '마이그레이션', '스키마 변경'],
48
+ description: 'Data deletion and schema changes',
49
+ descriptionKo: '데이터 삭제 및 스키마 변경',
50
+ applicableTo: ['backend', 'fullstack'],
51
+ enabled: true,
52
+ },
53
+ {
54
+ name: 'Privacy & Compliance',
55
+ nameKo: '개인정보/법적 규정',
56
+ severity: 'CRITICAL',
57
+ keywords: ['personal data', 'GDPR', 'privacy', 'PII', 'terms', 'policy', 'agreement', 'compliance', 'regulation', '개인정보', '약관', '정책', '규정', '준수'],
58
+ description: 'Privacy and legal compliance',
59
+ descriptionKo: '개인정보 및 법적 규정 준수',
60
+ applicableTo: ['backend', 'frontend', 'mobile', 'fullstack'],
61
+ enabled: true,
62
+ },
63
+ {
64
+ name: 'Pricing & Business Logic',
65
+ nameKo: '가격/비즈니스 로직',
66
+ severity: 'IMPORTANT',
67
+ keywords: ['price', 'cost', 'fee', 'rate', 'order', 'transaction', 'inventory', 'stock', 'quantity', 'limit', 'quota', 'threshold', '가격', '비용', '수수료', '요금', '주문', '거래', '재고', '수량', '한도', '제한'],
68
+ description: 'Pricing and core business logic',
69
+ descriptionKo: '가격 및 핵심 비즈니스 로직',
70
+ applicableTo: ['backend', 'frontend', 'fullstack'],
71
+ enabled: false, // Optional in quick setup
72
+ },
73
+ {
74
+ name: 'External Integration',
75
+ nameKo: '외부 연동',
76
+ severity: 'IMPORTANT',
77
+ keywords: ['third-party', 'external API', 'integration', 'webhook', 'callback', 'notification', 'email', 'SMS', 'push notification', '외부 연동', '웹훅', '콜백', '이메일', '문자', '푸시'],
78
+ description: 'Third-party API and external services',
79
+ descriptionKo: '외부 API 및 서비스 연동',
80
+ applicableTo: ['backend', 'fullstack'],
81
+ enabled: false,
82
+ },
83
+ {
84
+ name: 'Deployment & Infrastructure',
85
+ nameKo: '배포/인프라',
86
+ severity: 'IMPORTANT',
87
+ keywords: ['deploy', 'deployment', 'release', 'production', 'environment', 'config', 'env variable', 'database config', 'DB setup', 'connection', '배포', '프로덕션', '환경변수', '설정', '데이터베이스 설정'],
88
+ description: 'Deployment and infrastructure changes',
89
+ descriptionKo: '배포 및 인프라 변경',
90
+ applicableTo: ['backend', 'fullstack'],
91
+ enabled: false,
92
+ },
93
+ ];
94
+ /**
95
+ * Quick setup preset - includes ALL keyword categories (auto-enabled)
96
+ */
97
+ function getQuickSetupKeywords(projectType) {
98
+ return exports.DEFAULT_KEYWORD_CATEGORIES
99
+ .filter(cat => cat.applicableTo.includes(projectType))
100
+ .map(cat => ({ ...cat, enabled: true })); // Force enable all for quick setup
101
+ }
102
+ /**
103
+ * Expert setup - user can select categories and add custom keywords
104
+ */
105
+ function getExpertSetupKeywords(projectType) {
106
+ return exports.DEFAULT_KEYWORD_CATEGORIES
107
+ .filter(cat => cat.applicableTo.includes(projectType));
108
+ }
109
+ /**
110
+ * Format keywords for template insertion
111
+ */
112
+ function formatKeywordsForTemplate(categories, lang) {
113
+ const enabledCategories = categories.filter(cat => cat.enabled);
114
+ return enabledCategories.map(cat => {
115
+ const name = lang === 'ko' ? cat.nameKo : cat.name;
116
+ const desc = lang === 'ko' ? cat.descriptionKo : cat.description;
117
+ const keywords = cat.keywords.slice(0, 10).join(', '); // Limit display for readability
118
+ return `- **${name}** (${cat.severity}): ${keywords}${cat.keywords.length > 10 ? ', ...' : ''}\n _${desc}_`;
119
+ }).join('\n\n');
120
+ }
121
+ /**
122
+ * Get default tech stack by project type
123
+ */
124
+ function getDefaultTechStack(type) {
125
+ const techStackMap = {
126
+ frontend: ['React', 'TypeScript', 'Vite'],
127
+ backend: ['Node.js', 'Express', 'TypeScript'],
128
+ mobile: ['React Native', 'TypeScript'],
129
+ fullstack: ['Next.js', 'TypeScript', 'Prisma'],
130
+ };
131
+ return techStackMap[type] || ['TypeScript'];
132
+ }
133
+ //# sourceMappingURL=keywords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keywords.js","sourceRoot":"","sources":["../../src/constants/keywords.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const init_1 = require("./commands/init");
10
+ const update_1 = require("./commands/update");
11
+ const add_repo_1 = require("./commands/add-repo");
12
+ const program = new commander_1.Command();
13
+ program
14
+ .name('codesyncer')
15
+ .description('AI-powered multi-repository collaboration system')
16
+ .version('1.0.0 (Currently supports: Claude Code only)\n\n' +
17
+ chalk_1.default.gray('Want to add support for Cursor, GitHub Copilot, or other AI tools?\n') +
18
+ chalk_1.default.gray('We welcome contributions! https://github.com/bitjaru/codesyncer-cli'))
19
+ .addHelpText('after', `
20
+ ${chalk_1.default.bold('Currently Supported AI Tools:')}
21
+ ${chalk_1.default.green('✓')} Claude Code
22
+
23
+ ${chalk_1.default.bold('Coming Soon (Community Contributions Welcome!):')}
24
+ ${chalk_1.default.gray('○')} Cursor
25
+ ${chalk_1.default.gray('○')} GitHub Copilot
26
+ ${chalk_1.default.gray('○')} Continue.dev
27
+ ${chalk_1.default.gray('○')} Codeium
28
+
29
+ ${chalk_1.default.bold('Examples:')}
30
+ $ codesyncer init ${chalk_1.default.gray('# Initialize collaboration system')}
31
+ $ codesyncer update ${chalk_1.default.gray('# Update project structure')}
32
+ $ codesyncer add-repo ${chalk_1.default.gray('# Add new repository to workspace')}
33
+ `);
34
+ program
35
+ .command('init')
36
+ .description('Initialize CodeSyncer collaboration system in current directory')
37
+ .option('-l, --lang <language>', 'Language (en/ko)', 'en')
38
+ .option('-a, --ai <tool>', 'AI tool (currently: claude only)', 'claude')
39
+ .action(init_1.initCommand);
40
+ program
41
+ .command('update')
42
+ .description('Update project structure and documentation')
43
+ .option('-a, --ai <tool>', 'AI tool (currently: claude only)', 'claude')
44
+ .action(update_1.updateCommand);
45
+ program
46
+ .command('add-repo')
47
+ .description('Add a new repository to the workspace')
48
+ .option('-l, --lang <language>', 'Language (en/ko)', 'en')
49
+ .option('-a, --ai <tool>', 'AI tool (currently: claude only)', 'claude')
50
+ .action(add_repo_1.addRepoCommand);
51
+ program.parse(process.argv);
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAqD;AAErD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,OAAO,CAAC,kDAAkD;IACzD,eAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC;IAClF,eAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;KACnF,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"}
@@ -0,0 +1,147 @@
1
+ # ARCHITECTURE.md
2
+
3
+ > **Auto-Generated Documentation** - Project structure and statistics
4
+ >
5
+ > Created: [TODAY]
6
+
7
+ ---
8
+
9
+ ## 📁 Project Structure
10
+
11
+ ```
12
+ [PROJECT_NAME]/
13
+ ├── src/
14
+ │ ├── components/
15
+ │ ├── pages/
16
+ │ ├── services/
17
+ │ ├── utils/
18
+ │ └── types/
19
+ ├── package.json
20
+ └── tsconfig.json
21
+ ```
22
+
23
+ **Update**: Rescan with "update structure" command
24
+
25
+ ---
26
+
27
+ ## 📊 Project Statistics
28
+
29
+ - **Total Files**: 0
30
+ - **TypeScript Files**: 0
31
+ - **JavaScript Files**: 0
32
+ - **Components**: 0
33
+ - **Lines of Code**: 0
34
+
35
+ **Update**: Refresh with "update stats" command
36
+
37
+ ---
38
+
39
+ ## 🔍 Comment Tag Statistics
40
+
41
+ - `@codesyncer-inference`: 0
42
+ - `@codesyncer-decision`: 0
43
+ - `@codesyncer-todo`: 0
44
+ - `@codesyncer-rule`: 0
45
+ - `@codesyncer-context`: 0
46
+
47
+ **Legacy tags (`@claude-*`)**: 0
48
+
49
+ **Update**: Auto-scan or "update stats"
50
+
51
+ ---
52
+
53
+ ## 📝 TODO List
54
+
55
+ **Items Needing Confirmation**: 0
56
+
57
+ No TODOs currently.
58
+
59
+ **Search**: `grep -r "@codesyncer-todo" ./src`
60
+
61
+ ---
62
+
63
+ ## 🏗️ Main Components/Files
64
+
65
+ ### Components
66
+ - Will be auto-added after scan
67
+
68
+ ### Pages
69
+ - Will be auto-added after scan
70
+
71
+ ### Services
72
+ - Will be auto-added after scan
73
+
74
+ ### Utils
75
+ - Will be auto-added after scan
76
+
77
+ ---
78
+
79
+ ## 🔌 API Endpoints
80
+
81
+ No API endpoints discovered.
82
+
83
+ **Search Pattern**: `/api/`, `fetch(`, `axios.`
84
+
85
+ ---
86
+
87
+ ## 📦 Dependencies
88
+
89
+ ### Production
90
+ ```json
91
+ {
92
+ "dependencies": {}
93
+ }
94
+ ```
95
+
96
+ ### Development
97
+ ```json
98
+ {
99
+ "devDependencies": {}
100
+ }
101
+ ```
102
+
103
+ **Update**: Auto-detect on package.json changes
104
+
105
+ ---
106
+
107
+ ## 🎨 Tech Stack
108
+
109
+ - **Language**: [TECH_STACK]
110
+ - **Framework**: To be auto-detected
111
+ - **State Management**: To be auto-detected
112
+ - **Styling**: To be auto-detected
113
+
114
+ ---
115
+
116
+ ## 📈 Code Quality Metrics
117
+
118
+ ### Complexity
119
+ - Average function complexity: N/A
120
+ - Maximum function complexity: N/A
121
+
122
+ ### Test Coverage
123
+ - Total coverage: N/A
124
+ - Line coverage: N/A
125
+ - Branch coverage: N/A
126
+
127
+ **Note**: Auto-displayed when ESLint, Prettier, Jest configured
128
+
129
+ ---
130
+
131
+ ## 🔄 Update History
132
+
133
+ ### [TODAY]
134
+ - Initial creation
135
+
136
+ ---
137
+
138
+ **Auto-Update Triggers**:
139
+ - New folder/file creation detected
140
+ - package.json changes
141
+ - 10+ file modifications
142
+
143
+ **Manual Update**: Use "update structure" or "update stats" command
144
+
145
+ ---
146
+
147
+ *This document is auto-generated and managed by CodeSyncer.*
@@ -0,0 +1,267 @@
1
+ # CLAUDE.md - [PROJECT_NAME] Coding Guide v3.0
2
+
3
+ > **Powered by CodeSyncer** - AI Collaboration System
4
+
5
+ ## 🚀 Quick Start
6
+
7
+ ### Have the AI read this document
8
+ ```
9
+ "Read CLAUDE.md"
10
+ ```
11
+ → AI will automatically apply this project's rules.
12
+
13
+ ### Request in natural language
14
+ ```
15
+ ✅ "Create order list page"
16
+ ✅ "Add login API"
17
+ ✅ "Need a payment button component"
18
+ ✅ "Fix this bug"
19
+ ```
20
+
21
+ **AI will automatically:**
22
+ - Understand project structure
23
+ - Create files in appropriate locations
24
+ - Follow coding rules
25
+ - Request discussion when needed
26
+
27
+ ---
28
+
29
+ ## 🏗️ Project Information
30
+ - **Project Name**: [PROJECT_NAME]
31
+ - **Project Type**: [PROJECT_TYPE]
32
+ - **Tech Stack**: [TECH_STACK]
33
+ - **Created**: [TODAY]
34
+ - **Version**: 1.0.0
35
+
36
+ ## 📁 Project Structure
37
+ See `.claude/ARCHITECTURE.md` for detailed structure
38
+
39
+ ## 🚨 Absolute Rules
40
+ 1. **TypeScript strict mode** usage
41
+ 2. **Functional programming** preferred
42
+ 3. **Explicit type definitions** required
43
+ 4. **Comments on all functions/components** required
44
+ 5. **Error handling** required
45
+
46
+ ## 🔴 No-Inference Zone (Must Confirm with User)
47
+
48
+ **Never infer** the following - always ask the user:
49
+
50
+ - 💰 Business logic numbers (prices, fees, limits, discount rates)
51
+ - 🔌 API endpoint URLs
52
+ - 🔐 Security settings (token expiration, encryption methods)
53
+ - 🗄️ Database schema
54
+ - 🌐 External service integration details
55
+
56
+ **Example:**
57
+ ```
58
+ ❌ Bad: "Set shipping fee to $30"
59
+ ✅ Good: "What should the shipping fee be?"
60
+ ```
61
+
62
+ ## 🤝 Discussion-Required Keywords
63
+
64
+ **Automatically pause work** when these keywords are detected and discuss with user:
65
+
66
+ [KEYWORDS]
67
+
68
+ ### Discussion Process
69
+ 1. **Keyword detected** → "⚠️ '[keyword]' detected. Discussion needed."
70
+ 2. **Present options** → Recommended approach + alternatives
71
+ 3. **Wait for user response** → "Proceed" / "Alternative A" / "Hold"
72
+ 4. **Record decision** → DECISIONS.md + code comment
73
+ 5. **Resume work**
74
+
75
+ ---
76
+
77
+ ## 📝 Comment Writing Rules
78
+
79
+ ### Comment Tags (Both formats supported)
80
+
81
+ **✨ Recommended format** (Compatible with all AI tools):
82
+ ```typescript
83
+ @codesyncer-rule // Special rules (non-standard implementations)
84
+ @codesyncer-inference // Inference and rationale
85
+ @codesyncer-decision // Post-discussion decisions
86
+ @codesyncer-todo // Needs user confirmation
87
+ @codesyncer-context // Business context explanation
88
+ ```
89
+
90
+ **🔄 Legacy format** (Compatible with existing projects):
91
+ ```typescript
92
+ @claude-rule // Same as @codesyncer-rule
93
+ @claude-inference // Same as @codesyncer-inference
94
+ @claude-decision // Same as @codesyncer-decision
95
+ @claude-todo // Same as @codesyncer-todo
96
+ @claude-context // Same as @codesyncer-context
97
+ ```
98
+
99
+ ### Comment Examples by Level
100
+
101
+ #### 📄 File Level (JSDoc)
102
+ ```tsx
103
+ /**
104
+ * User authentication service
105
+ *
106
+ * @codesyncer-context JWT-based authentication system
107
+ * @codesyncer-rule Store tokens in httpOnly cookies (XSS prevention)
108
+ * @author CodeSyncer
109
+ * @date [TODAY]
110
+ */
111
+ ```
112
+
113
+ #### 🔧 Function/Component Level
114
+ ```tsx
115
+ /**
116
+ * Order creation form component
117
+ *
118
+ * @codesyncer-inference 6-step form structure (common order flow)
119
+ * @codesyncer-decision [2024-10-15] Using Zustand for state management (complex form)
120
+ */
121
+ export default function OrderForm() {
122
+ // ...
123
+ }
124
+ ```
125
+
126
+ #### 📝 Inline Level
127
+ ```tsx
128
+ // @codesyncer-inference: Page size 20 (standard UX pattern)
129
+ const PAGE_SIZE = 20;
130
+
131
+ // @codesyncer-todo: Need to confirm mainApi endpoint
132
+ const API_URL = '/api/temp';
133
+
134
+ // @codesyncer-decision: [2024-10-17] Soft Delete method (30-day recovery)
135
+ async function deleteUser(id: string) {
136
+ return db.update(id, { deleted_at: new Date() });
137
+ }
138
+ ```
139
+
140
+ ### Good vs Bad Comments
141
+
142
+ **✅ Good Comments**
143
+ ```tsx
144
+ // @codesyncer-inference: Using localStorage (JWT token storage, common pattern)
145
+ // @codesyncer-context: GDPR compliance needed (auto-delete after 30 days)
146
+ // @codesyncer-decision: [2024-10-15] Using Stripe (Korean payment support)
147
+ ```
148
+
149
+ **❌ Bad Comments**
150
+ ```tsx
151
+ // @codesyncer-inference: Did this
152
+ // @codesyncer-todo: Later
153
+ // @codesyncer-decision: Changed
154
+ ```
155
+
156
+ → Always include **specific reasons and rationale**!
157
+
158
+ ---
159
+
160
+ ## 🔄 Auto-Update System
161
+
162
+ ### Auto-Detection Triggers
163
+
164
+ | Situation | Update Target | User Confirmation |
165
+ |-----------|--------------|-------------------|
166
+ | New folder/file created | ARCHITECTURE.md | "Update structure?" |
167
+ | Post-discussion decision | DECISIONS.md | Auto-add |
168
+ | Same pattern 3 times | Add template to CLAUDE.md | "Add template?" |
169
+ | TODO added/completed | ARCHITECTURE.md stats | "Update stats?" |
170
+
171
+ ### Manual Update Commands
172
+
173
+ ```
174
+ "Update structure" → Rescan ARCHITECTURE.md
175
+ "Add rule" → Add new rule to CLAUDE.md
176
+ "Add template" → Convert repeated pattern to template
177
+ "Update stats" → Refresh comment tag statistics
178
+ ```
179
+
180
+ ---
181
+
182
+ ## 📋 Project Type Guidelines
183
+
184
+ [TEMPLATES]
185
+
186
+ ---
187
+
188
+ ## 🔄 Work Process
189
+
190
+ ### Typical Work Flow
191
+ ```
192
+ 1. Receive user request
193
+
194
+ 2. Check CLAUDE.md rules
195
+
196
+ 3. Check no-inference zones → Ask if needed
197
+
198
+ 4. Check discussion keywords → Discuss if detected
199
+
200
+ 5. Generate code (auto-include comments)
201
+
202
+ 6. If inference made → @codesyncer-inference tag
203
+
204
+ 7. If decision made → Record in DECISIONS.md
205
+
206
+ 8. Report completion
207
+ ```
208
+
209
+ ### What AI Does Automatically
210
+ - ✅ Analyze project structure
211
+ - ✅ Create files in appropriate locations
212
+ - ✅ Auto-add type definitions
213
+ - ✅ Auto-generate comments
214
+ - ✅ Add error handling
215
+ - ✅ Record inferences with tags
216
+
217
+ ---
218
+
219
+ ## 💡 Session Start Checklist
220
+
221
+ When AI reads this file, it automatically:
222
+
223
+ 1. ✅ **Show help** - Display available commands
224
+ 2. ✅ **Understand project structure** - Check ARCHITECTURE.md
225
+ 3. ✅ **Check recent discussions** - Review DECISIONS.md
226
+ 4. ✅ **Ready message** - "Ready to work!"
227
+
228
+ ---
229
+
230
+ ## 📚 Related Documents
231
+
232
+ - **Comment Guide**: `.claude/COMMENT_GUIDE.md` - Detailed comment writing guide
233
+ - **Project Structure**: `.claude/ARCHITECTURE.md` - Folder structure, statistics
234
+ - **Discussion Records**: `.claude/DECISIONS.md` - All discussion decisions
235
+ - **Master Document**: `../.codesyncer/MASTER_CODESYNCER.md` - Multi-repo switching
236
+
237
+ ---
238
+
239
+ ## 🔍 Comment Search
240
+
241
+ All comment tags are searchable:
242
+
243
+ ```bash
244
+ # Find all inferences
245
+ grep -r "@codesyncer-inference" ./
246
+
247
+ # TODO list
248
+ grep -r "@codesyncer-todo" ./
249
+
250
+ # Discussion decisions
251
+ grep -r "@codesyncer-decision" ./
252
+
253
+ # Special rules
254
+ grep -r "@codesyncer-rule" ./
255
+ ```
256
+
257
+ ---
258
+
259
+ **Version**: 1.0.0 (Powered by CodeSyncer)
260
+ **Created**: [TODAY]
261
+ **AI Tools**: Currently Claude Code support | Coming: Cursor, GitHub Copilot, Continue.dev
262
+
263
+ **Tag Compatibility**: Both `@codesyncer-*` (recommended) + `@claude-*` (legacy) supported
264
+
265
+ ---
266
+
267
+ *This collaboration system is open source. Suggest improvements at [CodeSyncer GitHub](https://github.com/bitjaru/codesyncer-cli)!*