superpowers-zh 1.1.4 → 1.1.5

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.md CHANGED
@@ -37,7 +37,7 @@ AI:在开始实现之前,我需要了解几个关键问题:
37
37
  [![npm version](https://img.shields.io/npm/v/superpowers-zh)](https://www.npmjs.com/package/superpowers-zh)
38
38
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
39
39
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://makeapullrequest.com)
40
- [![QQ群](https://img.shields.io/badge/QQ群-1071280067-blue?logo=tencentqq)](https://qm.qq.com/q/EeNQA9xCxy)
40
+
41
41
 
42
42
  ### 📊 项目规模
43
43
 
@@ -173,7 +173,7 @@ cp -r superpowers-zh/skills /your/project/.qwen/skills # Qwen Code
173
173
  | Git 提交规范 | 无 | Conventional Commits 中文适配 |
174
174
  | 文档规范 | 英文 | 中文排版规范 + 中英混排 |
175
175
  | MCP 构建 | 无 | MCP 服务器构建方法论 |
176
- | 社区 | Discord | QQ |
176
+ | 社区 | Discord | 微信公众号 + 微信群 |
177
177
 
178
178
  ---
179
179
 
@@ -193,11 +193,12 @@ cp -r superpowers-zh/skills /your/project/.qwen/skills # Qwen Code
193
193
 
194
194
  ---
195
195
 
196
- ## 社区交流
196
+ ## 交流 · Community
197
+
198
+ 微信公众号 **「AI不止语」**(微信搜索 `AI_BuZhiYu`)
199
+ 技术问答 · 项目更新 · 实战文章
197
200
 
198
- | 群名 | 群号 | 加入方式 |
199
- |------|------|---------|
200
- | AI 编程 & Agent 中文实践群 | **1071280067** | [点击加入](https://qm.qq.com/q/EeNQA9xCxy) |
201
+ 微信群:关注公众号后回复「群」获取入群方式
201
202
 
202
203
  ---
203
204
 
@@ -230,28 +230,84 @@ ${skillList}
230
230
  }
231
231
  }
232
232
 
233
+ // 工具名称别名映射(用户输入 -> TARGETS.name)
234
+ const TOOL_ALIASES = {
235
+ 'claude': 'Claude Code',
236
+ 'claude-code': 'Claude Code',
237
+ 'claudecode': 'Claude Code',
238
+ 'cursor': 'Cursor',
239
+ 'codex': 'Codex CLI',
240
+ 'kiro': 'Kiro',
241
+ 'deerflow': 'DeerFlow',
242
+ 'trae': 'Trae',
243
+ 'antigravity': 'Antigravity',
244
+ 'vscode': 'VS Code',
245
+ 'vs-code': 'VS Code',
246
+ 'openclaw': 'OpenClaw',
247
+ 'windsurf': 'Windsurf',
248
+ 'gemini': 'Gemini CLI',
249
+ 'gemini-cli': 'Gemini CLI',
250
+ 'aider': 'Aider',
251
+ 'opencode': 'OpenCode',
252
+ 'qwen': 'Qwen Code',
253
+ 'qwen-code': 'Qwen Code',
254
+ };
255
+
233
256
  function showHelp() {
257
+ const toolNames = [...new Set(Object.values(TOOL_ALIASES))];
234
258
  console.log(`
235
259
  superpowers-zh v${PKG.version} — AI 编程超能力中文版
236
260
 
237
261
  用法:
238
- npx superpowers-zh 安装 skills(及 agents)到当前项目
239
- npx superpowers-zh --help 显示帮助
240
- npx superpowers-zh --version 显示版本
262
+ npx superpowers-zh 自动检测工具并安装
263
+ npx superpowers-zh --tool cursor 指定工具安装(检测不到时使用)
264
+ npx superpowers-zh --help 显示帮助
265
+ npx superpowers-zh --version 显示版本
266
+
267
+ 支持的工具名:
268
+ ${Object.keys(TOOL_ALIASES).join(', ')}
241
269
 
242
270
  说明:
243
- 自动检测当前项目使用的 AI 编程工具:
244
- Claude Code / Cursor / Codex / Kiro / DeerFlow / Trae / Antigravity / VS Code / OpenClaw
245
- Windsurf / Gemini CLI / Aider / OpenCode / Qwen Code
246
- ${countDirs(SKILLS_SRC)} skills 安装到对应目录。
247
- Claude Code 还会额外安装 agents 到 .claude/agents/。
248
- 如果未检测到任何工具,默认安装到 .claude/skills/ 和 .claude/agents/。
271
+ 自动检测当前项目使用的 AI 编程工具,将 ${countDirs(SKILLS_SRC)} 个 skills 安装到对应目录。
272
+ 如果自动检测不到,请用 --tool 指定你的工具,例如:
273
+ npx superpowers-zh --tool cursor
274
+ npx superpowers-zh --tool trae
249
275
 
250
276
  项目:https://github.com/jnMetaCode/superpowers-zh
251
277
  `);
252
278
  }
253
279
 
254
- function install() {
280
+ function installForTarget(target) {
281
+ const dest = resolve(PROJECT_DIR, target.dir);
282
+ mkdirSync(dest, { recursive: true });
283
+ copyDirSync(SKILLS_SRC, dest);
284
+ const count = countDirs(dest);
285
+ console.log(` ✅ ${target.name}: ${count} 个 skills -> ${dest}`);
286
+
287
+ if (target.name === 'Trae') {
288
+ generateTraeBootstrapRule(PROJECT_DIR);
289
+ }
290
+
291
+ if (target.name === 'Antigravity') {
292
+ generateAntigravityBootstrap(PROJECT_DIR);
293
+ }
294
+
295
+ if (target.name === 'Aider') {
296
+ generateAiderBootstrap(PROJECT_DIR);
297
+ }
298
+
299
+ if (target.name === 'Gemini CLI') {
300
+ generateGeminiBootstrap(PROJECT_DIR);
301
+ }
302
+
303
+ if (target.name === 'Claude Code' && existsSync(AGENTS_SRC)) {
304
+ const agentsDest = resolve(PROJECT_DIR, '.claude', 'agents');
305
+ mkdirSync(agentsDest, { recursive: true });
306
+ copyDirSync(AGENTS_SRC, agentsDest);
307
+ }
308
+ }
309
+
310
+ function install(forceToolName) {
255
311
  try {
256
312
  console.log(`\n superpowers-zh v${PKG.version} — AI 编程超能力中文版\n`);
257
313
 
@@ -263,44 +319,36 @@ function install() {
263
319
  console.log(` 源: ${countDirs(SKILLS_SRC)} 个 skills`);
264
320
  console.log(` 目标项目: ${PROJECT_DIR}\n`);
265
321
 
322
+ // --tool 指定安装
323
+ if (forceToolName) {
324
+ const target = TARGETS.find(t => t.name === forceToolName);
325
+ if (!target) {
326
+ console.error(` ❌ 未知工具: ${forceToolName}`);
327
+ process.exit(1);
328
+ }
329
+ installForTarget(target);
330
+ console.log('\n 安装完成!重启你的 AI 编程工具即可生效。\n');
331
+ return;
332
+ }
333
+
334
+ // 自动检测
266
335
  let installed = 0;
267
336
 
268
337
  for (const target of TARGETS) {
269
338
  const detectPath = resolve(PROJECT_DIR, target.detect);
270
- const dest = resolve(PROJECT_DIR, target.dir);
271
-
272
339
  if (existsSync(detectPath)) {
273
- mkdirSync(dest, { recursive: true });
274
- copyDirSync(SKILLS_SRC, dest);
275
- const count = countDirs(dest);
276
- console.log(` ✅ ${target.name}: ${count} 个 skills -> ${dest}`);
340
+ installForTarget(target);
277
341
  installed++;
278
-
279
- if (target.name === 'Trae') {
280
- generateTraeBootstrapRule(PROJECT_DIR);
281
- }
282
-
283
- if (target.name === 'Antigravity') {
284
- generateAntigravityBootstrap(PROJECT_DIR);
285
- }
286
-
287
- if (target.name === 'Aider') {
288
- generateAiderBootstrap(PROJECT_DIR);
289
- }
290
-
291
- if (target.name === 'Gemini CLI') {
292
- generateGeminiBootstrap(PROJECT_DIR);
293
- }
294
-
295
- if (target.name === 'Claude Code' && existsSync(AGENTS_SRC)) {
296
- const agentsDest = resolve(PROJECT_DIR, '.claude', 'agents');
297
- mkdirSync(agentsDest, { recursive: true });
298
- copyDirSync(AGENTS_SRC, agentsDest);
299
- }
300
342
  }
301
343
  }
302
344
 
303
345
  if (installed === 0) {
346
+ console.log(' ⚠️ 未检测到任何已知的 AI 编程工具。\n');
347
+ console.log(' 如果你使用的是 Cursor、Trae 等工具,请用 --tool 指定:');
348
+ console.log(' npx superpowers-zh --tool cursor');
349
+ console.log(' npx superpowers-zh --tool trae\n');
350
+ console.log(' 现在将默认安装到 .claude/skills/(兼容 Claude Code / OpenClaw)\n');
351
+
304
352
  const dest = resolve(PROJECT_DIR, '.claude', 'skills');
305
353
  mkdirSync(dest, { recursive: true });
306
354
  copyDirSync(SKILLS_SRC, dest);
@@ -321,13 +369,31 @@ function install() {
321
369
  }
322
370
  }
323
371
 
324
- const arg = process.argv[2];
325
- if (arg === '--help' || arg === '-h') {
372
+ const args = process.argv.slice(2);
373
+ const helpIdx = args.findIndex(a => a === '--help' || a === '-h');
374
+ const versionIdx = args.findIndex(a => a === '--version' || a === '-v');
375
+ const toolIdx = args.findIndex(a => a === '--tool' || a === '-t');
376
+
377
+ if (helpIdx !== -1) {
326
378
  showHelp();
327
- } else if (arg === '--version' || arg === '-v') {
379
+ } else if (versionIdx !== -1) {
328
380
  console.log(PKG.version);
329
- } else if (arg && arg.startsWith('-')) {
330
- console.warn(` 未知参数: ${arg}\n`);
381
+ } else if (toolIdx !== -1) {
382
+ const toolArg = args[toolIdx + 1];
383
+ if (!toolArg) {
384
+ console.error(' ❌ --tool 需要指定工具名,例如: --tool cursor\n');
385
+ showHelp();
386
+ process.exit(1);
387
+ }
388
+ const toolName = TOOL_ALIASES[toolArg.toLowerCase()];
389
+ if (!toolName) {
390
+ console.error(` ❌ 未知工具: ${toolArg}`);
391
+ console.error(` 支持的工具: ${Object.keys(TOOL_ALIASES).join(', ')}\n`);
392
+ process.exit(1);
393
+ }
394
+ install(toolName);
395
+ } else if (args.length > 0 && args[0].startsWith('-')) {
396
+ console.warn(` 未知参数: ${args[0]}\n`);
331
397
  showHelp();
332
398
  process.exit(1);
333
399
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "engines": {
5
5
  "node": ">=14.0.0"
6
6
  },