@vincent119/go-copilot-rules 1.1.2 → 1.1.3

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 (2) hide show
  1. package/cli/install.js +39 -19
  2. package/package.json +1 -1
package/cli/install.js CHANGED
@@ -24,24 +24,28 @@ function detectIDE() {
24
24
 
25
25
  // 檢查是否在專案目錄中
26
26
  if (fs.existsSync(path.join(cwd, '.kiro'))) {
27
- return { name: 'kiro', defaultPath: '.kiro/skills' };
27
+ return { name: 'kiro', defaultPath: '.kiro' };
28
28
  }
29
29
 
30
30
  if (fs.existsSync(path.join(cwd, '.cursor'))) {
31
- return { name: 'cursor', defaultPath: '.cursor/skills' };
31
+ return { name: 'cursor', defaultPath: '.cursor' };
32
+ }
33
+
34
+ if (fs.existsSync(path.join(cwd, '.agent'))) {
35
+ return { name: 'antigravity', defaultPath: '.agent' };
32
36
  }
33
37
 
34
38
  if (fs.existsSync(path.join(cwd, '.vscode'))) {
35
- return { name: 'vscode', defaultPath: '.agent_agy' };
39
+ return { name: 'vscode', defaultPath: '.github' };
36
40
  }
37
41
 
38
42
  // 檢查是否有全域 Kiro 配置
39
43
  if (fs.existsSync(path.join(homeDir, '.kiro'))) {
40
- return { name: 'kiro-global', defaultPath: path.join(homeDir, '.kiro/skills') };
44
+ return { name: 'kiro-global', defaultPath: path.join(homeDir, '.kiro') };
41
45
  }
42
46
 
43
47
  // 預設為 VS Code
44
- return { name: 'vscode', defaultPath: '.agent_agy' };
48
+ return { name: 'vscode', defaultPath: '.github' };
45
49
  }
46
50
 
47
51
  function parseArgs() {
@@ -68,20 +72,24 @@ function parseArgs() {
68
72
  break;
69
73
  case '--vscode':
70
74
  options.ide = 'vscode';
71
- options.path = '.agent_agy';
75
+ options.path = '.github';
72
76
  break;
73
77
  case '--cursor':
74
78
  options.ide = 'cursor';
75
- options.path = '.cursor/skills';
79
+ options.path = '.cursor';
80
+ break;
81
+ case '--antigravity':
82
+ options.ide = 'antigravity';
83
+ options.path = '.agent';
76
84
  break;
77
85
  case '--kiro':
78
86
  options.ide = 'kiro';
79
- options.path = '.kiro/skills';
87
+ options.path = '.kiro';
80
88
  break;
81
89
  case '--kiro-global':
82
90
  options.ide = 'kiro-global';
83
91
  const homeDir = require('os').homedir();
84
- options.path = path.join(homeDir, '.kiro/skills');
92
+ options.path = path.join(homeDir, '.kiro');
85
93
  break;
86
94
  case '--path':
87
95
  options.path = args[++i];
@@ -112,10 +120,11 @@ ${colors.yellow}用法:${colors.reset}
112
120
  npx @vincent119/go-copilot-rules [選項]
113
121
 
114
122
  ${colors.yellow}選項:${colors.reset}
115
- --vscode 安裝到 VS Code 預設位置 (.agent_agy/)
116
- --cursor 安裝到 Cursor 預設位置 (.cursor/skills/)
117
- --kiro 安裝到 Kiro 專案位置 (.kiro/skills/)
118
- --kiro-global 安裝到 Kiro 全域位置 (~/.kiro/skills/)
123
+ --vscode 安裝到 VS Code 預設位置 (.github/)
124
+ --cursor 安裝到 Cursor 預設位置 (.cursor/)
125
+ --antigravity 安裝到 Antigravity 預設位置 (.agent/)
126
+ --kiro 安裝到 Kiro 專案位置 (.kiro/)
127
+ --kiro-global 安裝到 Kiro 全域位置 (~/.kiro/)
119
128
  --path <dir> 安裝到自訂路徑
120
129
  --core-only 只安裝核心規範(不包含 Skills)
121
130
  --skills-only 只安裝 Skills(不包含核心規範)
@@ -133,6 +142,9 @@ ${colors.yellow}範例:${colors.reset}
133
142
  # 安裝到 Cursor
134
143
  npx @vincent119/go-copilot-rules --cursor
135
144
 
145
+ # 安裝到 Antigravity
146
+ npx @vincent119/go-copilot-rules --antigravity
147
+
136
148
  # 安裝到 Kiro (專案)
137
149
  npx @vincent119/go-copilot-rules --kiro
138
150
 
@@ -243,8 +255,9 @@ function install(options) {
243
255
  log('🔧 解決方案:', 'cyan');
244
256
  log(' 使用手動安裝方式:', 'reset');
245
257
  log(' git clone https://github.com/vincent119/copilot-rules-kit.git /tmp/copilot-rules-kit', 'blue');
246
- log(' mkdir -p .kiro/skills', 'blue');
247
- log(' cp -r /tmp/copilot-rules-kit/.agent_agy/skills/* .kiro/skills/', 'blue');
258
+ log(' mkdir -p .kiro', 'blue');
259
+ log(' cp -r /tmp/copilot-rules-kit/.agent_agy/skills .kiro/', 'blue');
260
+ log(' cp -r /tmp/copilot-rules-kit/.agent_agy/rules .kiro/', 'blue');
248
261
  log('', 'reset');
249
262
  log('📖 完整安裝指南:', 'cyan');
250
263
  log(' https://github.com/vincent119/copilot-rules-kit/blob/main/.agent_agy/INSTALLATION.md', 'blue');
@@ -305,13 +318,15 @@ function install(options) {
305
318
  fs.mkdirSync(rulesDir, { recursive: true });
306
319
  copyRecursive(path.join(sourceDir, 'rules'), rulesDir);
307
320
 
308
- // 複製 skills 目錄內的所有 go-* 目錄到目標目錄(不保留 skills/ 這一層)
321
+ // 複製 skills 目錄(保留 skills/ 這一層)
322
+ const skillsDestDir = path.join(targetDir, 'skills');
323
+ fs.mkdirSync(skillsDestDir, { recursive: true });
309
324
  const skillsSrcDir = path.join(sourceDir, 'skills');
310
325
  if (fs.existsSync(skillsSrcDir)) {
311
326
  fs.readdirSync(skillsSrcDir).forEach(skillName => {
312
327
  const skillSrc = path.join(skillsSrcDir, skillName);
313
328
  if (fs.statSync(skillSrc).isDirectory()) {
314
- copyRecursive(skillSrc, path.join(targetDir, skillName));
329
+ copyRecursive(skillSrc, path.join(skillsDestDir, skillName));
315
330
  }
316
331
  });
317
332
  }
@@ -332,12 +347,14 @@ function install(options) {
332
347
 
333
348
  case 'skills-only':
334
349
  log(' 複製所有 Skills', 'cyan');
350
+ const skillsOnlyDestDir = path.join(targetDir, 'skills');
351
+ fs.mkdirSync(skillsOnlyDestDir, { recursive: true });
335
352
  const skillsOnlySrcDir = path.join(sourceDir, 'skills');
336
353
  if (fs.existsSync(skillsOnlySrcDir)) {
337
354
  fs.readdirSync(skillsOnlySrcDir).forEach(skillName => {
338
355
  const skillSrc = path.join(skillsOnlySrcDir, skillName);
339
356
  if (fs.statSync(skillSrc).isDirectory()) {
340
- copyRecursive(skillSrc, path.join(targetDir, skillName));
357
+ copyRecursive(skillSrc, path.join(skillsOnlyDestDir, skillName));
341
358
  }
342
359
  });
343
360
  }
@@ -348,11 +365,14 @@ function install(options) {
348
365
  if (options.skills) {
349
366
  log('📋 複製選定的 Skills...', 'blue');
350
367
 
368
+ const skillsTargetDir = path.join(targetDir, 'skills');
369
+ fs.mkdirSync(skillsTargetDir, { recursive: true });
370
+
351
371
  const skillList = options.skills.split(',').map(s => s.trim());
352
372
  skillList.forEach(skill => {
353
373
  const skillSrc = path.join(sourceDir, 'skills', skill);
354
374
  if (fs.existsSync(skillSrc)) {
355
- const skillDest = path.join(targetDir, skill);
375
+ const skillDest = path.join(skillsTargetDir, skill);
356
376
  copyRecursive(skillSrc, skillDest);
357
377
  log(` • ${skill}`, 'green');
358
378
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vincent119/go-copilot-rules",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Professional Go development rules and skills for GitHub Copilot, Cursor, and other AI coding assistants",
5
5
  "keywords": [
6
6
  "copilot",