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.
- package/LICENSE +31 -0
- package/README.ko.md +417 -0
- package/README.md +417 -0
- package/bin/codesyncer.js +3 -0
- package/dist/commands/add-repo.d.ts +3 -0
- package/dist/commands/add-repo.d.ts.map +1 -0
- package/dist/commands/add-repo.js +145 -0
- package/dist/commands/add-repo.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +489 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +123 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/constants/keywords.d.ts +23 -0
- package/dist/constants/keywords.d.ts.map +1 -0
- package/dist/constants/keywords.js +133 -0
- package/dist/constants/keywords.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/en/architecture.md +147 -0
- package/dist/templates/en/claude.md +267 -0
- package/dist/templates/en/comment_guide.md +324 -0
- package/dist/templates/en/decisions.md +227 -0
- package/dist/templates/en/master.md +179 -0
- package/dist/templates/ko/architecture.md +147 -0
- package/dist/templates/ko/claude.md +267 -0
- package/dist/templates/ko/comment_guide.md +324 -0
- package/dist/templates/ko/decisions.md +227 -0
- package/dist/templates/ko/master.md +179 -0
- package/dist/types.d.ts +78 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/messages.d.ts +129 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +168 -0
- package/dist/utils/messages.js.map +1 -0
- package/dist/utils/scanner.d.ts +11 -0
- package/dist/utils/scanner.d.ts.map +1 -0
- package/dist/utils/scanner.js +311 -0
- package/dist/utils/scanner.js.map +1 -0
- package/dist/utils/template-loader.d.ts +18 -0
- package/dist/utils/template-loader.d.ts.map +1 -0
- package/dist/utils/template-loader.js +496 -0
- package/dist/utils/template-loader.js.map +1 -0
- package/package.json +70 -0
- package/src/templates/en/architecture.md +147 -0
- package/src/templates/en/claude.md +267 -0
- package/src/templates/en/comment_guide.md +324 -0
- package/src/templates/en/decisions.md +227 -0
- package/src/templates/en/master.md +179 -0
- package/src/templates/ko/architecture.md +147 -0
- package/src/templates/ko/claude.md +267 -0
- package/src/templates/ko/comment_guide.md +324 -0
- package/src/templates/ko/decisions.md +227 -0
- 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":";;;AA6FA,sDAIC;AAKD,wDAGC;AAKD,8DAUC;AAKD,kDASC;AApID;;;GAGG;AAEU,QAAA,0BAA0B,GAAsB;IAC3D;QACE,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACvJ,WAAW,EAAE,2CAA2C;QACxD,aAAa,EAAE,eAAe;QAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;QAClD,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QACvJ,WAAW,EAAE,uCAAuC;QACpD,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC;QAC5D,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;QAC7I,WAAW,EAAE,wCAAwC;QACrD,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QACtC,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC9I,WAAW,EAAE,kCAAkC;QAC/C,aAAa,EAAE,iBAAiB;QAChC,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QACtC,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjJ,WAAW,EAAE,8BAA8B;QAC3C,aAAa,EAAE,iBAAiB;QAChC,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC;QAC5D,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAChM,WAAW,EAAE,iCAAiC;QAC9C,aAAa,EAAE,iBAAiB;QAChC,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;QAClD,OAAO,EAAE,KAAK,EAAG,0BAA0B;KAC5C;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;QAC5K,WAAW,EAAE,uCAAuC;QACpD,aAAa,EAAE,iBAAiB;QAChC,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QACtC,OAAO,EAAE,KAAK;KACf;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC;QAC1L,WAAW,EAAE,uCAAuC;QACpD,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QACtC,OAAO,EAAE,KAAK;KACf;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,qBAAqB,CAAC,WAAwB;IAC5D,OAAO,kCAA0B;SAC9B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACrD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAmC;AACjF,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,WAAwB;IAC7D,OAAO,kCAA0B;SAC9B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,UAA6B,EAAE,IAAiB;IACxF,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEhE,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACjC,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC;QAEvF,OAAO,OAAO,IAAI,OAAO,GAAG,CAAC,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,GAAG,CAAC;IAC/G,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAiB;IACnD,MAAM,YAAY,GAAkC;QAClD,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC;QACzC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;QAC7C,MAAM,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;QACtC,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC;KAC/C,CAAC;IAEF,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -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)!*
|