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 +7 -6
- package/bin/superpowers-zh.js +109 -43
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ AI:在开始实现之前,我需要了解几个关键问题:
|
|
|
37
37
|
[](https://www.npmjs.com/package/superpowers-zh)
|
|
38
38
|
[](https://opensource.org/licenses/MIT)
|
|
39
39
|
[](https://makeapullrequest.com)
|
|
40
|
-
|
|
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 |
|
|
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
|
|
package/bin/superpowers-zh.js
CHANGED
|
@@ -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
|
|
239
|
-
npx superpowers-zh --
|
|
240
|
-
npx superpowers-zh --
|
|
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
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
325
|
-
|
|
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 (
|
|
379
|
+
} else if (versionIdx !== -1) {
|
|
328
380
|
console.log(PKG.version);
|
|
329
|
-
} else if (
|
|
330
|
-
|
|
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 {
|