superpowers-zh 1.7.8 → 1.7.10

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.
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "superpowers-zh",
11
11
  "description": "AI 编程超能力中文增强版:20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留),支持 Claude Code / Hermes Agent / Cursor / Claw Code / Qoder 等 23 款工具",
12
- "version": "1.7.8",
12
+ "version": "1.7.10",
13
13
  "source": "./",
14
14
  "author": {
15
15
  "name": "jnMetaCode",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
3
  "description": "AI 编程超能力中文增强版:20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留),支持 Claude Code / Hermes Agent / Cursor / Claw Code / Qoder 等 23 款工具",
4
- "version": "1.7.8",
4
+ "version": "1.7.10",
5
5
  "author": {
6
6
  "name": "jnMetaCode",
7
7
  "url": "https://github.com/jnMetaCode"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
- "version": "1.7.8",
3
+ "version": "1.7.10",
4
4
  "description": "AI 编程超能力中文增强版:头脑风暴、subagent 驱动开发、规划、TDD、调试、代码审查、收尾工作流,附 4 个中文 skills 沉淀。",
5
5
  "author": {
6
6
  "name": "jnMetaCode",
@@ -2,7 +2,7 @@
2
2
  "name": "superpowers-zh",
3
3
  "displayName": "Superpowers 中文版",
4
4
  "description": "AI 编程超能力中文增强版:20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留),支持 Cursor / Claude Code / Hermes Agent / Claw Code / Qoder 等 23 款工具",
5
- "version": "1.7.8",
5
+ "version": "1.7.10",
6
6
  "author": {
7
7
  "name": "jnMetaCode",
8
8
  "url": "https://github.com/jnMetaCode"
package/README.md CHANGED
@@ -16,7 +16,12 @@ Chinese community edition of [superpowers](https://github.com/obra/superpowers)
16
16
  >
17
17
  > 🌍 Also available in [English](https://aiolaola.com/en?utm_source=github&utm_campaign=superpowers) · [日本語](https://aiolaola.com/ja?utm_source=github&utm_campaign=superpowers) · [Español](https://aiolaola.com/es?utm_source=github&utm_campaign=superpowers) · [한국어](https://aiolaola.com/ko?utm_source=github&utm_campaign=superpowers) · [繁體中文](https://aiolaola.com/zh-Hant?utm_source=github&utm_campaign=superpowers)
18
18
 
19
- > 🆕 **v1.7.8 更新亮点**([完整 Release Notes →](RELEASE-NOTES.zh.md))
19
+ > 🆕 **v1.7.10 更新亮点**([完整 Release Notes →](RELEASE-NOTES.zh.md))
20
+ > - 🐛 **Aider 用户请重装** —— 两个错叠一起等于完全不可用:真实 Aider 项目从来没被自动检测到过(它不创建 `.aider/` 目录),且 `CONVENTIONS.md` **不会**被自动加载(官方要求 `--read`)。现在检测认真实标记,装完打印激活命令
21
+ > - 🐛 **Kiro 用户请重装** —— `.kiro/steering/` 下的文件**每轮对话全量进上下文**,而我们把 20 个 skill 正文全塞了进去:实测 **335 KB/轮**。改为索引式后 **4.4 KB**(76 倍),重装会自动清旧布局
22
+ > - 🐛 **Qoder 工具映射表有错** —— `Explore`/`Plan` 的 agent 名是编的(官方就是同名),且表没标适用范围(只覆盖 Qoder CLI,IDE 不同)([#119](https://github.com/jnMetaCode/superpowers-zh/issues/119))
23
+ > - 🛡️ **堵上「拿代码测代码」的测试盲区** —— Aider 那个 bug 能在 90 项全绿下活着,是因为测试 `mkdir .aider` 再断言认出 Aider。已补真实标记 + Kiro 两条硬回归守卫(90 → 101 pass)
24
+ > - 🐛 **Hermes 用户请重装** —— 之前我们只装项目级 `.hermes/skills/`,而 Hermes 根本不读那个目录,等于**装了完全不生效**。现在改用 `npx superpowers-zh --global --tool hermes` 装到 `~/.hermes/skills/`([#45](https://github.com/jnMetaCode/superpowers-zh/issues/45))
20
25
  > - 🔍 **定位核查** —— 逐层比对上游,修掉 5 处「不是增量」的偏离;新增 audit 检查强制 fork 增量必须显式声明
21
26
  > - 🆕 **新增 Crush**(工具数 22 → 23)—— 若你已为 CC / Cursor / Codex 装过,Crush 其实已经能读到,别重复装
22
27
  > - 🎯 **上游 v6.2.0 对齐完成** —— audit 的结构漂移告警清零;C 块盘点时发现其中 3 项不是风格改动而是实质新规则
@@ -133,10 +138,10 @@ AI:在开始实现之前,我需要了解几个关键问题:
133
138
  |------|------|:---:|:---:|
134
139
  | [Claude Code](https://claude.ai/code) | CLI | `npx superpowers-zh` | `.claude/skills/` |
135
140
  | [Copilot CLI](https://githubnext.com/projects/copilot-cli) | CLI | `npx superpowers-zh --tool copilot` | `.claude/skills/` |
136
- | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | CLI | `npx superpowers-zh --tool hermes` | `.hermes/skills/` |
141
+ | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | CLI | `npx superpowers-zh --global --tool hermes` | `~/.hermes/skills/` |
137
142
  | [Cursor](https://cursor.sh) | IDE | `npx superpowers-zh` | `.cursor/skills/` |
138
143
  | [Windsurf](https://codeium.com/windsurf) | IDE | `npx superpowers-zh` | `.windsurf/skills/` |
139
- | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/steering/` |
144
+ | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/skills/` |
140
145
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | CLI | `npx superpowers-zh` | `.gemini/skills/` |
141
146
  | [Codex CLI](https://github.com/openai/codex) | CLI | `npx superpowers-zh` | `.codex/skills/` |
142
147
  | [Aider](https://aider.chat) | CLI | `npx superpowers-zh` | `.aider/skills/` |
@@ -214,7 +219,7 @@ npx superpowers-zh --global --tool claude # 或指定工具
214
219
 
215
220
  全局安装把 skills 装到工具的**用户级目录**(如 `~/.claude/skills`),一次安装所有项目自动可用,更新时也只需重装一次。**项目级优先、全局兜底**,二者可共存。
216
221
 
217
- 支持通用全局安装的工具(均为 docs 已证实的用户级加载路径):**Claude Code · Codex CLI · Qoder · Windsurf · Qwen Code · OpenClaw · OpenCode · Crush**。其中 **Codex CLI** 全局装到 `~/.agents/skills`(Codex 启动扫描目录)。其余工具(Cursor / Kiro / Trae / Aider / DeerFlow / VS Code / Hermes / Claw / Cline / Kilo Code)规则是项目级或存于应用内设置,`--global` 会提示改用项目级;**Gemini CLI / Antigravity** 有各自专属的全局方式(Gemini 走扩展目录),见对应 `docs/README.*.md`。
222
+ 支持通用全局安装的工具(均为 docs 已证实的用户级加载路径):**Claude Code · Codex CLI · Qoder · Windsurf · Qwen Code · OpenClaw · OpenCode · Crush · Hermes Agent**。其中 **Codex CLI** 全局装到 `~/.agents/skills`(Codex 启动扫描目录)。其余工具(Cursor / Kiro / Trae / Aider / DeerFlow / VS Code / Claw / Cline / Kilo Code)规则是项目级或存于应用内设置,`--global` 会提示改用项目级;**Gemini CLI / Antigravity** 有各自专属的全局方式(Gemini 走扩展目录),见对应 `docs/README.*.md`。
218
223
 
219
224
  | | 项目级(默认) | 全局(`--global`) |
220
225
  |---|---|---|
@@ -270,7 +275,7 @@ cp -r superpowers-zh/skills /your/project/.claude/skills # Claude Code / Co
270
275
  cp -r superpowers-zh/skills /your/project/.hermes/skills # Hermes Agent
271
276
  cp -r superpowers-zh/skills /your/project/.cursor/skills # Cursor
272
277
  cp -r superpowers-zh/skills /your/project/.codex/skills # Codex CLI
273
- cp -r superpowers-zh/skills /your/project/.kiro/steering # Kiro
278
+ cp -r superpowers-zh/skills /your/project/.kiro/skills # Kiro
274
279
  cp -r superpowers-zh/skills /your/project/skills/custom # DeerFlow 2.0
275
280
  cp -r superpowers-zh/skills /your/project/.trae/rules # Trae
276
281
  cp -r superpowers-zh/skills /your/project/.agents # Antigravity
@@ -294,7 +299,7 @@ cp -r superpowers-zh/skills /your/project/.qoder/skills # Qoder(阿里 AI
294
299
  | Claude Code | `CLAUDE.md` | 项目根目录 |
295
300
  | Copilot CLI | `CLAUDE.md` | 与 Claude Code 共用插件格式 |
296
301
  | Hermes Agent | `HERMES.md` 或 `.hermes.md` | 项目根目录,安装时自动生成 |
297
- | Kiro | `.kiro/steering/*.md` | 支持 always/globs/手动三种模式 |
302
+ | Kiro | `.kiro/steering/superpowers-zh.md`(索引,`inclusion: always`)+ `.kiro/skills/` | steering 每轮常驻,故只放索引 |
298
303
  | DeerFlow 2.0 | `skills/custom/*/SKILL.md` | 字节跳动开源 SuperAgent,自动发现自定义 skills |
299
304
  | Trae | `.trae/rules/project_rules.md` | 项目级规则 |
300
305
  | Antigravity | `GEMINI.md` 或 `AGENTS.md` | 项目根目录 |
package/README.zh-Hant.md CHANGED
@@ -16,7 +16,12 @@ Chinese community edition of [superpowers](https://github.com/obra/superpowers)
16
16
 
17
17
  > 📖 **免費配套學習** → [從零學會 AI 編程](https://aiolaola.com/?utm_source=github&utm_campaign=superpowers):180 節免費實操課 + 《AI 編程實戰三卷書》線上閱讀 + 實戰社群 · superpowers 裝好後配上方法論效率翻倍 · 永久免費
18
18
 
19
- > 🆕 **v1.7.8 更新亮點**([完整 Release Notes →](RELEASE-NOTES.zh.md))
19
+ > 🆕 **v1.7.10 更新亮點**([完整 Release Notes →](RELEASE-NOTES.zh.md))
20
+ > - 🐛 **Aider 使用者請重裝** —— 兩個錯疊一起等於完全不可用:真實 Aider 專案從來沒被自動偵測到過(它不建立 `.aider/` 目錄),且 `CONVENTIONS.md` **不會**被自動載入(官方要求 `--read`)。現在偵測認真實標記,裝完列印啟用命令
21
+ > - 🐛 **Kiro 使用者請重裝** —— `.kiro/steering/` 下的檔案**每輪對話全量進上下文**,而我們把 20 個 skill 正文全塞了進去:實測 **335 KB/輪**。改為索引式後 **4.4 KB**(76 倍),重裝會自動清舊佈局
22
+ > - 🐛 **Qoder 工具對映表有錯** —— `Explore`/`Plan` 的 agent 名是編的(官方就是同名),且表沒標適用範圍(只涵蓋 Qoder CLI,IDE 不同)([#119](https://github.com/jnMetaCode/superpowers-zh/issues/119))
23
+ > - 🛡️ **堵上「拿程式碼測程式碼」的測試盲區** —— Aider 那個 bug 能在 90 項全綠下活著,是因為測試 `mkdir .aider` 再斷言認出 Aider。已補真實標記 + Kiro 兩條硬回歸守衛(90 → 101 pass)
24
+ > - 🐛 **Hermes 使用者請重裝** —— 之前我們只裝專案級 `.hermes/skills/`,而 Hermes 根本不讀那個目錄,等於**裝了完全不生效**。現在改用 `npx superpowers-zh --global --tool hermes` 裝到 `~/.hermes/skills/`([#45](https://github.com/jnMetaCode/superpowers-zh/issues/45))
20
25
  > - 🔍 **定位核查** —— 逐層比對上游,修掉 5 處「不是增量」的偏離;新增 audit 檢查強制 fork 增量必須顯式聲明
21
26
  > - 🆕 **新增 Crush**(工具數 22 → 23)—— 若你已為 CC / Cursor / Codex 裝過,Crush 其實已經能讀到,別重複裝
22
27
  > - 🎯 **上游 v6.2.0 對齊完成** —— audit 的結構漂移告警清零;C 塊盤點時發現其中 3 項不是風格改動而是實質新規則
@@ -133,10 +138,10 @@ AI:在開始實作之前,我需要了解幾個關鍵問題:
133
138
  |------|------|:---:|:---:|
134
139
  | [Claude Code](https://claude.ai/code) | CLI | `npx superpowers-zh` | `.claude/skills/` |
135
140
  | [Copilot CLI](https://githubnext.com/projects/copilot-cli) | CLI | `npx superpowers-zh --tool copilot` | `.claude/skills/` |
136
- | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | CLI | `npx superpowers-zh --tool hermes` | `.hermes/skills/` |
141
+ | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | CLI | `npx superpowers-zh --global --tool hermes` | `~/.hermes/skills/` |
137
142
  | [Cursor](https://cursor.sh) | IDE | `npx superpowers-zh` | `.cursor/skills/` |
138
143
  | [Windsurf](https://codeium.com/windsurf) | IDE | `npx superpowers-zh` | `.windsurf/skills/` |
139
- | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/steering/` |
144
+ | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/skills/` |
140
145
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | CLI | `npx superpowers-zh` | `.gemini/skills/` |
141
146
  | [Codex CLI](https://github.com/openai/codex) | CLI | `npx superpowers-zh` | `.codex/skills/` |
142
147
  | [Aider](https://aider.chat) | CLI | `npx superpowers-zh` | `.aider/skills/` |
@@ -214,7 +219,7 @@ npx superpowers-zh --global --tool claude # 或指定工具
214
219
 
215
220
  全域安裝把 skills 裝到工具的**使用者級目錄**(如 `~/.claude/skills`),一次安裝所有專案自動可用,更新時也只需重裝一次。**專案級優先、全域兜底**,二者可共存。
216
221
 
217
- 支援通用全域安裝的工具(均為 docs 已證實的使用者級載入路徑):**Claude Code · Codex CLI · Qoder · Windsurf · Qwen Code · OpenClaw · OpenCode · Crush**。其中 **Codex CLI** 全域裝到 `~/.agents/skills`(Codex 啟動掃描目錄)。其餘工具(Cursor / Kiro / Trae / Aider / DeerFlow / VS Code / Hermes / Claw / Cline / Kilo Code)規則是專案級或存於應用內設定,`--global` 會提示改用專案級;**Gemini CLI / Antigravity** 有各自專屬的全域方式(Gemini 走擴充目錄),見對應 `docs/README.*.md`。
222
+ 支援通用全域安裝的工具(均為 docs 已證實的使用者級載入路徑):**Claude Code · Codex CLI · Qoder · Windsurf · Qwen Code · OpenClaw · OpenCode · Crush · Hermes Agent**。其中 **Codex CLI** 全域裝到 `~/.agents/skills`(Codex 啟動掃描目錄)。其餘工具(Cursor / Kiro / Trae / Aider / DeerFlow / VS Code / Claw / Cline / Kilo Code)規則是專案級或存於應用內設定,`--global` 會提示改用專案級;**Gemini CLI / Antigravity** 有各自專屬的全域方式(Gemini 走擴充目錄),見對應 `docs/README.*.md`。
218
223
 
219
224
  | | 專案級(預設) | 全域(`--global`) |
220
225
  |---|---|---|
@@ -270,7 +275,7 @@ cp -r superpowers-zh/skills /your/project/.claude/skills # Claude Code / Co
270
275
  cp -r superpowers-zh/skills /your/project/.hermes/skills # Hermes Agent
271
276
  cp -r superpowers-zh/skills /your/project/.cursor/skills # Cursor
272
277
  cp -r superpowers-zh/skills /your/project/.codex/skills # Codex CLI
273
- cp -r superpowers-zh/skills /your/project/.kiro/steering # Kiro
278
+ cp -r superpowers-zh/skills /your/project/.kiro/skills # Kiro
274
279
  cp -r superpowers-zh/skills /your/project/skills/custom # DeerFlow 2.0
275
280
  cp -r superpowers-zh/skills /your/project/.trae/rules # Trae
276
281
  cp -r superpowers-zh/skills /your/project/.agents # Antigravity
@@ -294,7 +299,7 @@ cp -r superpowers-zh/skills /your/project/.qoder/skills # Qoder(阿里 AI
294
299
  | Claude Code | `CLAUDE.md` | 專案根目錄 |
295
300
  | Copilot CLI | `CLAUDE.md` | 與 Claude Code 共用外掛格式 |
296
301
  | Hermes Agent | `HERMES.md` 或 `.hermes.md` | 專案根目錄,安裝時自動產生 |
297
- | Kiro | `.kiro/steering/*.md` | 支援 always/globs/手動三種模式 |
302
+ | Kiro | `.kiro/steering/superpowers-zh.md`(索引,`inclusion: always`)+ `.kiro/skills/` | steering 每輪常駐,故只放索引 |
298
303
  | DeerFlow 2.0 | `skills/custom/*/SKILL.md` | 位元組跳動開源 SuperAgent,自動發現自訂 skills |
299
304
  | Trae | `.trae/rules/project_rules.md` | 專案級規則 |
300
305
  | Antigravity | `GEMINI.md` 或 `AGENTS.md` | 專案根目錄 |
@@ -6,6 +6,126 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## v1.7.10 (2026-08-12)
10
+
11
+ **Aider 和 Kiro 用户请重新安装。** 本版本源于一次对「我们自己那层工具支持」的系统核查 —— 起因是 v1.7.9 修 Hermes 时发现:我们从支持它起就装错了目录。既然错过一次,就该问一句**还有几个**。
12
+
13
+ 答案是:又查出三个,全部是我们自己写的、全部没查过官方文档。
14
+
15
+ ### 🐛 Aider:两个错叠在一起,等于完全不可用
16
+
17
+ **① 真实的 Aider 项目从来没被自动检测到过。**
18
+
19
+ 检测标记写的是 `.aider`,即要求存在一个 `.aider/` **目录** —— 而 Aider 根本不创建这个目录。它在项目根留下的是 `.aider.` 前缀的产物:`.aider.conf.yml`、`.aider.chat.history.md`、`.aider.tags.cache.v3/`。
20
+
21
+ 实测:造一个含这三样的真实 Aider 项目跑 `npx superpowers-zh`,输出「未检测到任何已知 AI 编程工具」。而文档一直写着「会自动检测 `.aider.conf.yml` 文件」—— **文档描述的是意图,代码做的是另一回事。**
22
+
23
+ 已改为认这四个标记。
24
+
25
+ **② `CONVENTIONS.md` 不会被 Aider 自动加载。**
26
+
27
+ 代码注释和文档都断言「Aider 原生支持自动加载此文件」。[官方文档](https://aider.chat/docs/usage/conventions.html)说的是反的:必须 `aider --read CONVENTIONS.md`,或在 `.aider.conf.yml` 里写 `read: CONVENTIONS.md`。
28
+
29
+ 最糟的是文档「Skills 未生效」排障的第 3 条写着「Aider 会自动读取 CONVENTIONS.md,无需额外配置」—— **用户卡住时来查文档,看到的正好是让他继续卡住的那句。**
30
+
31
+ 改法照搬 v1.7.9 的 Hermes:装完打印可直接用的两种激活方式,**不替用户改 `.aider.conf.yml`**(那是他们的文件)。
32
+
33
+ ### 🐛 Kiro:错的方向正好相反 —— 每一轮烧 335 KB
34
+
35
+ [Kiro 官方文档](https://kiro.dev/docs/steering/)明确:`.kiro/steering/` 下的文件**默认就是 `inclusion: always`**,"loaded into every Kiro interaction automatically"。
36
+
37
+ 而我们把 20 个 skill 的正文整个装了进去。实测 **47 个 md、335 KB,每一轮对话全量进上下文**。
38
+
39
+ 讽刺的是这个问题我们早解过 —— 当初给 Cline / Kilo Code 做适配时专门设计了「常驻位置只放索引、正文按需读取」(那次是 182 KB)。只是没意识到 Kiro 的 steering 是同一性质。现在照搬:
40
+
41
+ | | v1.7.9 | v1.7.10 |
42
+ |---|---|---|
43
+ | steering 常驻 | 47 个 md / 335 KB | **1 个索引 / 4.4 KB** |
44
+ | skill 正文 | `.kiro/steering/<name>/` | `.kiro/skills/<name>/`(按需读取) |
45
+
46
+ **76 倍。** 升级路径是这次最要紧的一块:老用户通常直接重装而不会先卸载,不清旧布局的话新旧两份并存、335 KB 一点没减 —— 那就等于没修。所以安装时先清 `.kiro/steering/` 下与我们 skill 同名的目录,并打印清理了几个。**你自己写的 steering 文件不会被动**,已实测。
47
+
48
+ 另外文档里写的加载模式 `alwaysApply: true` / `globs: "*.ts"` —— 这两个键 **Kiro 文档里根本不存在**,是 Cursor / Trae 的约定被误写成了 Kiro 的。Kiro 实际用 `inclusion` / `fileMatchPattern`。已按官方文档重写整篇。
49
+
50
+ ### 🐛 Qoder:工具映射表是编的([#119](https://github.com/jnMetaCode/superpowers-zh/issues/119))
51
+
52
+ 报告人说 Qoder IDE 里没有 `general-purpose` 子智能体,而我们的 `qoder-tools.md` 白纸黑字写着有。查该文件的引入 commit —— **没有引用任何来源**。
53
+
54
+ 对照 [Qoder 官方子代理文档](https://docs.qoder.com/zh/cli/subagent),4 行错了 2 行:`Explore → explore-agent`、`Plan → plan-agent` 都是错的,文档里就是**同名**;「Qoder 有内置 `code-reviewer`」也是编的(文档里的 `api-reviewer` 是用户自建示例)。
55
+
56
+ 但最关键的不是这几行 —— **那张表根本没标适用范围**。官方文档只覆盖 Qoder CLI,报告人用的是 Qoder IDE,两个产品面本来就不同,而我们的表让 IDE 用户当成了权威。已补适用范围、来源链接、核对日期,和一节 IDE/CLI 差异说明。
57
+
58
+ ### 🛡️ 把「拿代码测代码」的盲区堵上
59
+
60
+ Aider 那个 bug 能在 90 项全绿的情况下活下来,是因为测试写的是 `mkdir .aider` 然后断言认出 Aider —— **拿代码测代码,真实标记一个都没测。**
61
+
62
+ 已补:
63
+
64
+ - Aider 的三个真实标记进检测测试;`case` 分支加 `*.yml`(`.aider.conf.yml` 是文件不是目录,用目录冒充等于测了个假场景)
65
+ - Kiro 两条硬回归守卫:steering 下**只能有 1 个 md**、常驻总字节 **< 20 KB**;外加升级路径断言(旧布局必须清掉、用户文件必须保留)。双向验证过 —— 模拟退回旧布局,两条断言都会失败
66
+
67
+ `verify-release.sh` 90 → **101 pass**。
68
+
69
+ ### 📋 四个工具,四种失效方式
70
+
71
+ | 工具 | 错法 | 后果 |
72
+ |---|---|---|
73
+ | Hermes(v1.7.9 已修) | 装到不被读的目录 | 完全不生效 |
74
+ | Aider | 检测标记不存在 + 断言文件会自动加载 | 检测不到 + 装了不生效 |
75
+ | Kiro | 正文放进每轮常驻的目录 | 每轮烧 335 KB |
76
+ | Qoder | 映射表照着别家约定编 | 用户按错的工具名调用 |
77
+
78
+ **四个都是我们自己那层写的,四个都没查官方文档。** 这已经不是个案。剩余工具的核查还在继续,会在后续版本陆续修。
79
+
80
+ ### ✅ 发版前门禁
81
+
82
+ - `audit.sh` 166 pass / 0 warn / 0 fail
83
+ - `verify-release.sh` 101 pass / 0 fail
84
+
85
+ ---
86
+
87
+ ## v1.7.9 (2026-08-11)
88
+
89
+ **如果你在用 Hermes Agent,请重新安装。** 本版本之前我们对 Hermes 的支持是**坏的** —— 不是"不好用",是装完完全不生效。
90
+
91
+ ### 🐛 Hermes:我们一直装错了目录([#45](https://github.com/jnMetaCode/superpowers-zh/issues/45))
92
+
93
+ 报告人说「项目级 `.hermes/skills/` 里的 20 个 skill 全部返回 404,必须手动复制到 `~/.hermes/skills/` 才被识别」。查[官方文档](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills)核实,他是对的:
94
+
95
+ > Hermes 只自动加载 `~/.hermes/skills/`(原文称其为 "the primary directory and source of truth"),**项目级目录不会被自动发现**;外部目录必须写进 `~/.hermes/config.yaml` 的 `skills.external_dirs`。
96
+
97
+ 而我们从支持 Hermes 起就只装项目级 `.hermes/skills/` —— **那个目录 Hermes 根本不读**。装了 20 个 skill,一个都不生效,比不支持更糟:用户以为装好了。
98
+
99
+ **改法:**
100
+
101
+ - **全局成为推荐装法** —— `npx superpowers-zh --global --tool hermes` 装到 `~/.hermes/skills/`,装完即生效,`skills_list` 直接能看到 20 个 skill
102
+ - **项目级保留**(skills 可以随仓库分发),但装完打印**可直接粘贴**的配置片段,带绝对路径:
103
+
104
+ ```yaml
105
+ skills:
106
+ external_dirs:
107
+ - /your/project/.hermes/skills
108
+ ```
109
+
110
+ **我们不替你改 `config.yaml`** —— 那是你的文件。文档里特意写明「配置里不存在的路径会被静默跳过」,所以写错不会报错、只会"没生效",这个坑值得先说。
111
+
112
+ **过程中拦住了一次自己猜路径:** 第一版全局实现把 `HERMES.md` 引导文件写到了 `$HOME` 根目录。Hermes 的用户级指令文件约定**没有公开文档** —— 那是在猜路径 + 污染用户主目录。已改为全局模式不写 bootstrap,并在文档里说明理由。实测:全局装完 `$HOME` 根目录 0 个新文件、卸载 0 残留。
113
+
114
+ ### 🔧 发版工具:`bump-version.sh` 缺 jq 时会静默改错
115
+
116
+ 本次发版时踩到:机器上没有 `jq`,脚本不报错退出,而是每个文件打一行 `command not found` 后**继续往下跑**,最后以 `unbound variable` 收场 —— 版本号一个都没写进去,但输出里混着 "Done."。已加前置检查:缺 `jq` 直接退出并给出安装命令。
117
+
118
+ ### ℹ️ #45 的后半部分未动(说明理由)
119
+
120
+ #45 还提到 7 个 skill 文件里有 24 处硬编码的 Claude 工具名(`TodoWrite` / `Read` / `Bash` 等)。**本次不动**,理由:那属于行为塑造内容,且 `references/hermes-tools.md` 已有完整映射表。正确解法是强化「查映射表」的引用,而不是把正文改成某个 harness 专属的工具名 —— 那会伤到其余 22 款工具。
121
+
122
+ ### ✅ 发版前门禁
123
+
124
+ - `audit.sh` 166 pass / 0 warn / 0 fail
125
+ - `verify-release.sh` 90 pass / 0 fail(`--global` 支持清单 6 → 7 款,新增 hermes)
126
+
127
+ ---
128
+
9
129
  ## v1.7.8 (2026-08-08)
10
130
 
11
131
  本版本源于一次**定位核查**:按「superpowers-zh 只是完整翻译上游 + 增加更多工具支持」这个定位,逐层比对我们与 [obra/superpowers](https://github.com/obra/superpowers) 的差异。结论是**定位基本站得住,但不完全** —— 查出 5 处偏离,全部修掉。
@@ -51,7 +51,7 @@ const LEGACY_AGENT_FILENAMES = ['code-reviewer.md'];
51
51
  // global.dir 用户级 skills 目录(相对 home)
52
52
  // global.detect home 下用于自动检测该工具是否安装的标记目录
53
53
  // global.boot 可选,用户级 bootstrap 文件(相对 home);无则仅靠 skill 自动发现
54
- // 无 global 的工具(Cursor/Kiro/Trae/Aider/DeerFlow/VS Code/Hermes/Claw/Cline/Kilo Code)规则是项目级、
54
+ // 无 global 的工具(Cursor/Kiro/Trae/Aider/DeerFlow/VS Code/Claw/Cline/Kilo Code)规则是项目级、
55
55
  // 或存在于应用内设置,没有稳定的用户级 skills 加载路径 —— --global 会明确拒绝而非写无效路径。
56
56
  const TARGETS = [
57
57
  { name: 'Claude Code', dir: '.claude/skills', detect: '.claude', global: { dir: '.claude/skills', detect: '.claude', boot: '.claude/CLAUDE.md' } },
@@ -59,7 +59,15 @@ const TARGETS = [
59
59
  // Codex 全局:docs 确认 Codex 启动时扫描 ~/.agents/skills/(不是 ~/.codex/skills),
60
60
  // 直接把每个 skill 复制到 ~/.agents/skills/<skill>/ 正好命中它的扁平扫描。
61
61
  { name: 'Codex CLI', dir: '.codex/skills', detect: '.codex', global: { dir: '.agents/skills', detect: '.codex' } },
62
- { name: 'Kiro', dir: '.kiro/steering', detect: '.kiro' },
62
+ // Kiro steering Cline / Kilo 的 rules 同性质:**每轮常驻**。官方文档
63
+ // (kiro.dev/docs/steering)明确 `.kiro/steering/` 下的文件默认 inclusion: always,
64
+ // "loaded into every Kiro interaction automatically"。
65
+ // v1.7.9 及更早把 20 个 skill 整个装进 .kiro/steering/ —— 实测 47 个 md、335 KB,
66
+ // 每一轮全量进上下文。改为与 Cline / Kilo 同一套:skills 放 .kiro/skills/(不被
67
+ // 自动加载),只在 steering 里放一份带 inclusion: always 的小索引。
68
+ // 注意 Kiro 的 frontmatter 键是 inclusion / fileMatchPattern,不是 Cursor 系的
69
+ // alwaysApply / globs —— 我们旧文档写错过,见 docs/README.kiro.md。
70
+ { name: 'Kiro', dir: '.kiro/skills', detect: '.kiro' },
63
71
  { name: 'DeerFlow', dir: 'skills/custom', detect: 'deer_flow' },
64
72
  { name: 'Trae', dir: '.trae/skills', detect: '.trae' },
65
73
  // Antigravity 无 global:其全局 skills 加载路径未在 docs 证实(全局规则走 ~/.gemini/GEMINI.md),
@@ -71,10 +79,21 @@ const TARGETS = [
71
79
  // Gemini 无 global:其全局加载是「扩展目录」~/.gemini/extensions/*/skills/ + gemini-extension.json,
72
80
  // 不是简单复制到 ~/.gemini/skills,通用 --global 覆盖不了。见 docs/README.gemini-cli.md。
73
81
  { name: 'Gemini CLI', dir: '.gemini/skills', detect: 'GEMINI.md' },
74
- { name: 'Aider', dir: '.aider/skills', detect: '.aider' },
82
+ // Aider 两点都跟直觉相反,都是实测确认的:
83
+ // 1) Aider 不创建 `.aider/` 目录,它在项目根留下的是 `.aider.` 前缀的产物
84
+ // (.aider.conf.yml / .aider.chat.history.md / .aider.tags.cache.v3/)。
85
+ // 原来 detect 写 '.aider' 永远匹配不上 —— 真实 Aider 项目从来没被自动检测到过。
86
+ // 2) CONVENTIONS.md **不会**被 Aider 自动加载。官方文档(aider.chat/docs/usage/
87
+ // conventions.html)明确要 `aider --read CONVENTIONS.md` 或在 .aider.conf.yml
88
+ // 写 `read: CONVENTIONS.md`。所以装完必须打印激活方式,否则又是「装了不生效」。
89
+ { name: 'Aider', dir: '.aider/skills', detect: ['.aider.conf.yml', '.aider.chat.history.md', '.aider.tags.cache.v3', '.aider'] },
75
90
  { name: 'OpenCode', dir: '.opencode/skills', detect: '.opencode', global: { dir: '.config/opencode/skills', detect: '.config/opencode' } },
76
91
  { name: 'Qwen Code', dir: '.qwen/skills', detect: '.qwen', global: { dir: '.qwen/skills', detect: '.qwen' } },
77
- { name: 'Hermes Agent', dir: '.hermes/skills', detect: ['.hermes', 'HERMES.md', '.hermes.md'] },
92
+ // Hermes 官方文档:只自动加载 ~/.hermes/skills/("the primary directory and
93
+ // source of truth"),项目级目录不被自动发现,外部目录必须写进
94
+ // ~/.hermes/config.yaml 的 skills.external_dirs。所以全局才是能直接生效的装法;
95
+ // 项目级仍保留(便于随仓库分发),但装完会打印需要粘贴的 config.yaml 片段。
96
+ { name: 'Hermes Agent', dir: '.hermes/skills', detect: ['.hermes', 'HERMES.md', '.hermes.md'], global: { dir: '.hermes/skills', detect: '.hermes' } },
78
97
  { name: 'Claw Code', dir: '.claw/skills', detect: ['.claw', 'CLAW.md'] },
79
98
  { name: 'Qoder', dir: '.qoder/skills', detect: '.qoder', global: { dir: '.qoder/skills', detect: '.qoder' } },
80
99
  { name: 'CodeBuddy', dir: '.codebuddy/skills', detect: ['.codebuddy', 'CODEBUDDY.md'] },
@@ -218,6 +237,68 @@ ${skillTable}
218
237
  console.log(` ✅ Cline: bootstrap rule -> ${rulePath}`);
219
238
  }
220
239
 
240
+ // Kiro:steering 每轮常驻,所以这里只放索引,skill 正文放 .kiro/skills/ 按需读取。
241
+ // frontmatter 用 Kiro 自己的 inclusion: always(不是 Cursor 系的 alwaysApply)。
242
+ function generateKiroSteeringIndex(projectDir) {
243
+ const steeringDir = resolve(projectDir, '.kiro', 'steering');
244
+ mkdirSync(steeringDir, { recursive: true });
245
+
246
+ const skillEntries = scanSkillEntries(SKILLS_SRC);
247
+
248
+ // 先清掉旧布局:v1.7.9 及更早把 skill 正文装在 .kiro/steering/<skill>/。
249
+ // 升级的人通常直接重装而不会先卸载,不清的话新旧两份并存,335 KB 的常驻开销
250
+ // 一点没减 —— 这才是本次要修的东西。只删我们自己装过的那些 skill 同名目录。
251
+ const ourSkillNames = new Set(skillEntries.map(s => s.name));
252
+ let legacyRemoved = 0;
253
+ for (const entry of readdirSync(steeringDir, { withFileTypes: true })) {
254
+ if (entry.isDirectory() && ourSkillNames.has(entry.name)) {
255
+ rmSync(resolve(steeringDir, entry.name), { recursive: true, force: true });
256
+ legacyRemoved++;
257
+ }
258
+ }
259
+ if (legacyRemoved > 0) {
260
+ console.log(` 🧹 Kiro: 清理旧布局 ${legacyRemoved} 个 skill 目录 <- .kiro/steering/`);
261
+ console.log(` (旧版把正文放在这里,而 steering 每轮常驻,会一直进 prompt)`);
262
+ }
263
+ const skillTable = skillEntries.map(s => `| ${s.name} | ${s.desc} |`).join('\n');
264
+
265
+ const rule = `---
266
+ inclusion: always
267
+ ---
268
+
269
+ # Superpowers-ZH 中文增强版
270
+
271
+ 你已加载 superpowers-zh 技能框架(${skillEntries.length} 个 skills)。
272
+
273
+ ## 核心规则
274
+
275
+ 1. **收到任务时,先检查是否有匹配的 skill** — 哪怕只有 1% 的可能性也要检查
276
+ 2. **设计先于编码** — 收到功能需求时,先用 brainstorming skill 做需求分析
277
+ 3. **测试先于实现** — 写代码前先写测试(TDD)
278
+ 4. **验证先于完成** — 声称完成前必须运行验证命令
279
+
280
+ ## 可用 Skills
281
+
282
+ Skills 位于 \`.kiro/skills/\` 目录,每个 skill 有独立的 \`SKILL.md\` 文件。
283
+
284
+ | Skill | 触发条件 |
285
+ |-------|---------|
286
+ ${skillTable}
287
+
288
+ ## 如何使用
289
+
290
+ 当任务匹配某个 skill 的触发条件时,用读文件工具打开对应的
291
+ \`.kiro/skills/<skill-name>/SKILL.md\`,并严格遵循其流程。
292
+
293
+ **不要**把 skill 正文复制到本文件 —— \`.kiro/steering/\` 里的内容每轮都进 prompt,
294
+ 按需读取才能把常驻开销控制在这张索引表。
295
+ `;
296
+
297
+ const rulePath = resolve(steeringDir, 'superpowers-zh.md');
298
+ writeFileSync(rulePath, rule, 'utf8');
299
+ console.log(` ✅ Kiro: steering 索引 -> ${rulePath}`);
300
+ }
301
+
221
302
  // Kilo Code:v7 起官方推荐 .kilo/rules/ + 在 kilo.jsonc 的 instructions 数组里显式登记,
222
303
  // 但那要改用户的 kilo.jsonc(JSONC 带注释,安全合并困难,且属于侵入用户配置)。
223
304
  // 官方同时明确 `.kilocode/rules/` 向后兼容且无需配置即生效,故走这条:零配置改动。
@@ -369,7 +450,8 @@ ${skillList}
369
450
  当任务匹配某个 skill 时,读取对应的 \`.aider/skills/<skill-name>/SKILL.md\` 并严格遵循其流程。
370
451
  `;
371
452
 
372
- // 写入 CONVENTIONS.mdAider 原生支持自动加载此文件)
453
+ // 写入 CONVENTIONS.md。注意:Aider **不会**自动加载这个文件(见 TARGETS 里的
454
+ // Aider 注释),所以写完必须告诉用户怎么激活,否则装了等于没装。
373
455
  // 如果已有 CONVENTIONS.md,追加而不覆盖
374
456
  const convPath = resolve(projectDir, 'CONVENTIONS.md');
375
457
  if (existsSync(convPath)) {
@@ -384,6 +466,18 @@ ${skillList}
384
466
  writeFileSync(convPath, wrapWithSentinel(content), 'utf8');
385
467
  console.log(` ✅ Aider: bootstrap -> ${convPath}`);
386
468
  }
469
+
470
+ // 激活提示。不替用户改 .aider.conf.yml —— 那是他们的配置文件。
471
+ console.log('');
472
+ console.log(' ⚠️ Aider 不会自动加载 CONVENTIONS.md,还需一步才生效:');
473
+ console.log('');
474
+ console.log(' 每次启动时带上:');
475
+ console.log(' aider --read CONVENTIONS.md');
476
+ console.log('');
477
+ console.log(' 或写进 .aider.conf.yml 一劳永逸:');
478
+ console.log('');
479
+ console.log(' read: CONVENTIONS.md');
480
+ console.log('');
387
481
  }
388
482
 
389
483
  function generateGeminiBootstrap(baseDir, isGlobal) {
@@ -431,7 +525,17 @@ ${skillList}
431
525
  }
432
526
  }
433
527
 
434
- function generateHermesBootstrap(projectDir) {
528
+ function generateHermesBootstrap(projectDir, isGlobal) {
529
+ // 全局模式不写 bootstrap:Hermes 的用户级指令文件约定未在 docs 证实,
530
+ // 往 $HOME 根目录写 HERMES.md 是猜路径 + 污染主目录。~/.hermes/skills/ 里的
531
+ // skill 靠 name/description 被 skills_list / skill_view 发现,本就不依赖 bootstrap。
532
+ if (isGlobal) {
533
+ console.log(' ℹ️ Hermes 全局安装不写 bootstrap 文件(其用户级指令文件约定未证实)。');
534
+ console.log(' skills 已在 ~/.hermes/skills/,可用 skills_list / skill_view 发现。');
535
+ console.log(' 想让它在项目里自动触发,在该项目跑一次项目级安装以生成 HERMES.md。');
536
+ return;
537
+ }
538
+
435
539
  const skillEntries = scanSkillEntries(SKILLS_SRC);
436
540
  const skillList = skillEntries.map(s => `- **${s.name}**: ${s.desc}`).join('\n');
437
541
 
@@ -485,6 +589,25 @@ ${skillList}
485
589
  writeFileSync(hermesPath, wrapWithSentinel(content), 'utf8');
486
590
  console.log(` ✅ Hermes Agent: bootstrap -> ${hermesPath}`);
487
591
  }
592
+
593
+ // 项目级安装 Hermes 认不到 —— 必须显式登记到 config.yaml。不替用户改配置
594
+ // (那是他们的文件),改为打印可直接粘贴的片段。见 issue #45。
595
+ if (!isGlobal) {
596
+ const abs = resolve(projectDir, '.hermes', 'skills');
597
+ console.log('');
598
+ console.log(' ⚠️ Hermes 只自动扫描 ~/.hermes/skills/,不会发现项目级目录。');
599
+ console.log(' 二选一让它生效:');
600
+ console.log('');
601
+ console.log(' A) 改用全局安装(推荐,装完即生效):');
602
+ console.log(' npx superpowers-zh --global --tool hermes');
603
+ console.log('');
604
+ console.log(' B) 保留项目级,把这段加进 ~/.hermes/config.yaml:');
605
+ console.log('');
606
+ console.log(' skills:');
607
+ console.log(' external_dirs:');
608
+ console.log(` - ${abs}`);
609
+ console.log('');
610
+ }
488
611
  }
489
612
 
490
613
  function generateClaudeCodeBootstrap(baseDir, isGlobal) {
@@ -732,7 +855,7 @@ function installForTarget(target, baseDir, isGlobal) {
732
855
  }
733
856
 
734
857
  if (target.name === 'Hermes Agent') {
735
- generateHermesBootstrap(baseDir);
858
+ generateHermesBootstrap(baseDir, isGlobal);
736
859
  }
737
860
 
738
861
  if (target.name === 'Claude Code') {
@@ -743,6 +866,10 @@ function installForTarget(target, baseDir, isGlobal) {
743
866
  generateCodeBuddyBootstrap(baseDir);
744
867
  }
745
868
 
869
+ if (target.name === 'Kiro') {
870
+ generateKiroSteeringIndex(baseDir);
871
+ }
872
+
746
873
  if (target.name === 'Cline') {
747
874
  generateClineBootstrapRule(baseDir);
748
875
  }
@@ -767,7 +894,13 @@ const BOOTSTRAP_DELETE = [
767
894
  '.agents/rules.md',
768
895
  '.clinerules/superpowers-zh.md',
769
896
  '.kilocode/rules/superpowers-zh.md',
897
+ '.kiro/steering/superpowers-zh.md',
770
898
  ];
899
+
900
+ // v1.7.9 及更早把 skill 正文直接装进 .kiro/steering/<skill>/,而 steering 每轮常驻 ——
901
+ // 那 335 KB 会一直进 prompt。升级的用户不会重跑旧版卸载,所以这里按老路径也清一遍,
902
+ // 否则新旧两份并存,开销问题原样保留。
903
+ const LEGACY_SKILL_DIRS = ['.kiro/steering'];
771
904
  const BOOTSTRAP_CLEAN_SECTION = [
772
905
  'CLAUDE.md',
773
906
  'GEMINI.md',
@@ -894,6 +1027,22 @@ function uninstall(isGlobal) {
894
1027
  .map(e => e.name)
895
1028
  );
896
1029
 
1030
+ // 旧布局清理:见 LEGACY_SKILL_DIRS 的说明。老用户跑新版卸载也应清干净。
1031
+ if (!isGlobal) {
1032
+ for (const rel of LEGACY_SKILL_DIRS) {
1033
+ const legacyDir = resolve(baseDir, rel);
1034
+ if (!existsSync(legacyDir)) continue;
1035
+ let n = 0;
1036
+ for (const entry of readdirSync(legacyDir, { withFileTypes: true })) {
1037
+ if (entry.isDirectory() && srcSkillNames.has(entry.name)) {
1038
+ rmSync(resolve(legacyDir, entry.name), { recursive: true, force: true });
1039
+ n++;
1040
+ }
1041
+ }
1042
+ if (n > 0) console.log(` ✅ 清理旧布局: 移除 ${n} 个 skills <- ${legacyDir}`);
1043
+ }
1044
+ }
1045
+
897
1046
  const pool = isGlobal ? GLOBAL_TARGETS : TARGETS;
898
1047
  let totalSkills = 0;
899
1048
  for (const target of pool) {
@@ -2,42 +2,60 @@
2
2
 
3
3
  在 [Aider](https://aider.chat) 中使用 superpowers-zh 的完整指南。
4
4
 
5
- ## 自动安装
5
+ ## ⚠️ 先看这一条:装完还需要一步才生效
6
+
7
+ **Aider 不会自动加载 `CONVENTIONS.md`。** [官方文档](https://aider.chat/docs/usage/conventions.html)明确要求显式加载 —— 原文推荐 `aider --read CONVENTIONS.md`,或在配置里写 `read:` 项。
8
+
9
+ 所以装完之后,二选一:
6
10
 
7
11
  ```bash
8
- cd /your/project
9
- npx superpowers-zh
12
+ # 每次启动时带上
13
+ aider --read CONVENTIONS.md
14
+ ```
15
+
16
+ ```yaml
17
+ # 或写进 .aider.conf.yml,一劳永逸
18
+ read: CONVENTIONS.md
10
19
  ```
11
20
 
12
- 安装脚本会自动检测 `.aider.conf.yml` 文件并将 skills 复制到 `.aider/skills/` 目录。
21
+ **我们不替你改 `.aider.conf.yml`** —— 那是你的配置文件。安装器会在装完时把上面两条打印出来提醒你。
13
22
 
14
- ## 手动安装
23
+ > 📌 v1.7.9 及更早版本的文档写着「Aider 会自动读取 CONVENTIONS.md,无需额外配置」—— **那是错的**,会让你以为装好了其实没生效。这是我们的错误,v1.7.10 起更正。
24
+
25
+ ## 安装
15
26
 
16
27
  ```bash
17
- git clone https://github.com/jnMetaCode/superpowers-zh.git
18
- cp -r superpowers-zh/skills /your/project/.aider/skills
28
+ cd /your/project
29
+ npx superpowers-zh --tool aider
19
30
  ```
20
31
 
21
- ## 通过 CONVENTIONS.md 引用
32
+ 会做两件事:
33
+
34
+ 1. 把 20 个 skill 复制到 `.aider/skills/`
35
+ 2. 生成(或追加)`CONVENTIONS.md`,里面是 skill 索引和触发规则,指向 `.aider/skills/<name>/SKILL.md`
22
36
 
23
- Aider 原生支持 `CONVENTIONS.md` 文件。在其中引用 skills:
37
+ ### 关于自动检测
24
38
 
25
- ```markdown
26
- # 项目约定
39
+ 不带 `--tool` 时安装器会扫描项目里的工具标记。**Aider 不创建 `.aider/` 目录** —— 它在项目根留下的是 `.aider.` 前缀的产物,所以我们认这几个:
27
40
 
28
- ## 工作方法论
41
+ - `.aider.conf.yml`
42
+ - `.aider.chat.history.md`
43
+ - `.aider.tags.cache.v3/`
29
44
 
30
- 本项目使用 superpowers-zh skills 作为工作方法论。
31
- Skills 位于 `.aider/skills/` 目录,每个子目录的 SKILL.md 定义一个工作流。
45
+ > 📌 v1.7.9 及更早只认 `.aider/` 这个目录,而 Aider 从不创建它 —— 也就是说**真实的 Aider 项目从来没被自动检测到过**,必须手动 `--tool aider`。同样在 v1.7.10 修正。
32
46
 
33
- - 新功能开发:先使用 brainstorming skill
34
- - 编写代码:遵循 test-driven-development skill
35
- - 调试问题:使用 systematic-debugging skill
47
+ ## 手动安装
48
+
49
+ ```bash
50
+ git clone https://github.com/jnMetaCode/superpowers-zh.git
51
+ cp -r superpowers-zh/skills /your/project/.aider/skills
36
52
  ```
37
53
 
38
- ## 通过 .aider.conf.yml 配置
54
+ > 手动复制不会生成 `CONVENTIONS.md`,你需要自己写一份索引并按上面的方式加载它。建议优先用 `npx superpowers-zh --tool aider`。
39
55
 
40
- `.aider.conf.yml` 中添加 read 配置来加载 skills:
56
+ ## 只加载部分 skill
57
+
58
+ `CONVENTIONS.md` 是一份索引(约 4 KB),由 Aider 常驻上下文,正文按需读取。如果你只想常驻少数几个 skill 的全文,也可以直接点名:
41
59
 
42
60
  ```yaml
43
61
  read:
@@ -46,16 +64,37 @@ read:
46
64
  - .aider/skills/systematic-debugging/SKILL.md
47
65
  ```
48
66
 
67
+ 注意每个 SKILL.md 都会完整进入上下文,装 20 个的全文开销很大 —— 这正是我们默认走索引式 `CONVENTIONS.md` 的原因。
68
+
49
69
  ## 故障排查
50
70
 
51
71
  ### Skills 未生效
52
72
 
53
- 1. 确认 `.aider/skills/` 目录存在且包含 skill 文件夹
54
- 2. 确保在 `CONVENTIONS.md` 或 `.aider.conf.yml` 中引用了 skills
55
- 3. Aider 会自动读取 `CONVENTIONS.md`,无需额外配置
73
+ 按顺序查:
74
+
75
+ 1. **`CONVENTIONS.md` 被加载了吗?** 这是最常见的原因。Aider 启动后用 `/read` 看已加载的只读文件里有没有它。没有的话,回到本文开头那一步。
76
+ 2. `.aider/skills/` 目录是否存在且包含 skill 子目录。
77
+ 3. 如果用 `.aider.conf.yml` 的 `read:` 配置:确认 Aider 读的是你以为的那份配置。Aider 会依次找 home 目录、git 仓库根、当前目录下的 `.aider.conf.yml`。
78
+
79
+ ### 装完没看到激活提示
80
+
81
+ 说明你用的是旧版本。升级:
82
+
83
+ ```bash
84
+ npx superpowers-zh@latest --tool aider
85
+ ```
86
+
87
+ ## 卸载
88
+
89
+ ```bash
90
+ npx superpowers-zh --uninstall
91
+ ```
92
+
93
+ 会删除 `.aider/skills/` 下装过的 skill,并从 `CONVENTIONS.md` 中精确切除 superpowers-zh 段(保留你自己写的内容)。`.aider.conf.yml` 我们没动过,所以也不会去改 —— 如果你加过 `read: CONVENTIONS.md`,需要自己删。
56
94
 
57
95
  ## 获取帮助
58
96
 
59
97
  - 提交 Issue:https://github.com/jnMetaCode/superpowers-zh/issues
60
98
  - 项目主页:https://github.com/jnMetaCode/superpowers-zh
61
99
  - Aider 文档:https://aider.chat/docs/
100
+ - Aider conventions 文档:https://aider.chat/docs/usage/conventions.html
@@ -2,37 +2,48 @@
2
2
 
3
3
  在 [Hermes Agent](https://github.com/NousResearch/hermes-agent) 中使用 superpowers-zh 的完整指南。
4
4
 
5
- ## 自动安装
5
+ ## ⚠️ 先看这一条:必须装到全局,否则不生效
6
+
7
+ [Hermes 官方文档](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills)明确:Hermes **只自动加载 `~/.hermes/skills/`**(原文称其为 "the primary directory and source of truth"),**项目级目录不会被自动发现**。
8
+
9
+ 所以推荐的装法是全局:
6
10
 
7
11
  ```bash
8
- cd /your/project
9
- npx superpowers-zh --tool hermes
12
+ npx superpowers-zh --global --tool hermes
10
13
  ```
11
14
 
12
- 安装脚本会将 20 个 skills 复制到 `.hermes/skills/` 目录,并自动生成 `HERMES.md` 引导文件(含工具映射表和 skills 列表)。
15
+ 装到 `~/.hermes/skills/`,装完即生效,用 `skills_list` 就能看到 20 个 skill。
13
16
 
14
- 如果项目中已存在 `.hermes` 目录或 `HERMES.md` 文件,也会被自动检测到:
17
+ > 📌 v1.7.8 及更早版本只支持项目级安装(装到 `<项目>/.hermes/skills/`)—— 那个目录 Hermes 根本不读,等于装了不生效。这是我们的实现错误,v1.7.9 起修正。见 [#45](https://github.com/jnMetaCode/superpowers-zh/issues/45)。
18
+
19
+ ## 如果你确实要项目级安装
20
+
21
+ 项目级的好处是 skills 可以随仓库一起分发。但**必须显式登记**,否则 Hermes 看不见。
15
22
 
16
23
  ```bash
17
- npx superpowers-zh # 自动检测
24
+ cd /your/project
25
+ npx superpowers-zh --tool hermes
18
26
  ```
19
27
 
20
- ## 手动安装
28
+ 安装器会打印出你需要粘贴的配置片段,形如:
21
29
 
22
- ```bash
23
- git clone https://github.com/jnMetaCode/superpowers-zh.git
24
- cp -r superpowers-zh/skills /your/project/.hermes/skills
30
+ ```yaml
31
+ skills:
32
+ external_dirs:
33
+ - /your/project/.hermes/skills
25
34
  ```
26
35
 
27
- ## 通过 HERMES.md 引导
36
+ 把它加进 `~/.hermes/config.yaml`。路径支持 `~` 展开和 `${VAR}` 环境变量替换;**配置里不存在的路径会被静默跳过**,所以写错了不会报错,只会"没生效"。
37
+
38
+ **我们不替你改 `config.yaml`** —— 那是你的配置文件。
39
+
40
+ 项目级安装还会生成 `HERMES.md` 引导文件(含核心规则和 skills 列表),让 Hermes 在合适时机主动检查 skill。全局安装**不写**这个文件 —— Hermes 的用户级指令文件约定没有公开文档,我们不猜路径、也不往你的主目录里写东西。
28
41
 
29
- Hermes Agent 在会话开始时自动加载项目根目录下的 `HERMES.md`(或 `.hermes.md`)作为上下文。安装器会自动生成此文件,内容包括:
42
+ ## 同名冲突
30
43
 
31
- - 工具映射表(Claude Code Hermes Agent 工具名称)
32
- - 所有可用 skills 的列表和描述
33
- - 核心规则和使用说明
44
+ 如果同一个 skill 名在 `~/.hermes/skills/` 和某个 `external_dirs` 目录里都存在,**本地(`~/.hermes/skills/`)的版本优先**。
34
45
 
35
- ## 通过 config.yaml 配置外部 skills 目录
46
+ ## 其他 config.yaml 用法
36
47
 
37
48
  如果希望全局使用 superpowers-zh skills,可以在 `~/.hermes/config.yaml` 中配置:
38
49
 
@@ -2,68 +2,100 @@
2
2
 
3
3
  在 [Kiro](https://kiro.dev)(Amazon AI IDE)中使用 superpowers-zh 的完整指南。
4
4
 
5
- ## 快速安装
5
+ ## ⚠️ v1.7.9 及更早版本请重新安装
6
+
7
+ 旧版把 20 个 skill 的**正文**直接装进了 `.kiro/steering/`。而 [Kiro 官方文档](https://kiro.dev/docs/steering/)明确:`.kiro/steering/` 下的文件默认 `inclusion: always`,会被 "loaded into every Kiro interaction automatically"。
8
+
9
+ 实测那个布局是 **47 个 md、335 KB,每一轮对话全量进上下文**。不是不能用,是每轮都在烧 token。
10
+
11
+ v1.7.10 起改成索引式:**4.4 KB**(76 倍差距)。重装即可,安装器会自动清掉旧布局:
6
12
 
7
13
  ```bash
8
14
  cd /your/project
9
- npx superpowers-zh
15
+ npx superpowers-zh@latest --tool kiro
10
16
  ```
11
17
 
12
- 安装脚本会自动检测 `.kiro/` 目录并将 skills 复制到 `.kiro/steering/`。
18
+ 会看到:
13
19
 
14
- ## 手动安装
20
+ ```
21
+ 🧹 Kiro: 清理旧布局 20 个 skill 目录 <- .kiro/steering/
22
+ ✅ Kiro: steering 索引 -> .kiro/steering/superpowers-zh.md
23
+ ```
24
+
25
+ **你自己写的 steering 文件不会被动** —— 只清理与我们 skill 同名的那些目录。
26
+
27
+ ## 快速安装
15
28
 
16
29
  ```bash
17
- git clone https://github.com/jnMetaCode/superpowers-zh.git
18
- cp -r superpowers-zh/skills/* /your/project/.kiro/steering/
30
+ cd /your/project
31
+ npx superpowers-zh --tool kiro
19
32
  ```
20
33
 
34
+ 装两样东西:
35
+
36
+ | 位置 | 内容 | 是否每轮常驻 |
37
+ |---|---|---|
38
+ | `.kiro/steering/superpowers-zh.md` | 索引:核心规则 + 20 个 skill 的触发条件表(约 4.4 KB) | **是**(`inclusion: always`) |
39
+ | `.kiro/skills/<name>/SKILL.md` | skill 正文 | 否,按需读取 |
40
+
21
41
  ## 工作原理
22
42
 
23
- Kiro 使用 **Steering** 机制管理 AI 行为规则:
43
+ Kiro **Steering** 机制管理 AI 行为规则。关键的三件事:
24
44
 
25
- - **目录**:`.kiro/steering/`
26
- - **格式**:Markdown + YAML frontmatter
27
- - **加载模式**:
28
- - `alwaysApply: true` — 每次对话自动加载
29
- - `globs: "*.ts"` — 匹配特定文件时加载
30
- - 手动引用 — 在聊天中输入 `#steering-file-name`
45
+ - **目录**:`.kiro/steering/`(项目级)、`~/.kiro/steering/`(全局)
46
+ - **默认行为**:**没写 `inclusion` 的文件默认就是 always** —— 每次交互自动加载
47
+ - **frontmatter 键**(这是 Kiro 自己的,别和 Cursor 系搞混):
31
48
 
32
- ### Skills Steering 的对应
49
+ | | 含义 |
50
+ |---|---|
51
+ | `inclusion: always` | 每次交互都加载(**默认值**) |
52
+ | `inclusion: fileMatch` + `fileMatchPattern` | 匹配特定文件时加载 |
53
+ | `inclusion: manual` | 仅在聊天里用 `#steering-file-name` 引用时加载 |
54
+ | `inclusion: auto` | 按 `description` 与请求匹配时自动加载 |
33
55
 
34
- superpowers-zh SKILL.md 文件格式与 Kiro Steering 文件兼容(都是 Markdown + YAML frontmatter)。安装后,Kiro 会自动识别并加载 skills。
56
+ > 📌 v1.7.9 及更早的本文档写着加载模式是 `alwaysApply: true` 和 `globs: "*.ts"` —— **这两个键 Kiro 文档里根本不存在**,是 Cursor / Trae 的约定被误写成了 Kiro 的。已更正。
35
57
 
36
- ### 推荐配置
58
+ ### 为什么正文不放 steering 里
37
59
 
38
- `.kiro/steering/` 中创建 `superpowers.md`:
60
+ 因为 steering 是常驻开销。这跟我们对 Cline、Kilo Code 的处理是同一个道理:**常驻的位置只放索引,正文按需读取。**
39
61
 
40
- ```markdown
41
- ---
42
- description: 加载 superpowers skills 框架
43
- alwaysApply: true
44
- ---
62
+ 索引里明确告诉 Kiro:任务匹配某个 skill 时,去读 `.kiro/skills/<skill-name>/SKILL.md` 并遵循其流程。
45
63
 
46
- 使用 .kiro/steering/ 目录下的 superpowers skills 来指导工作流程。
47
- 优先使用 brainstorming(头脑风暴)开始新任务。
64
+ ## 手动安装
65
+
66
+ ```bash
67
+ git clone https://github.com/jnMetaCode/superpowers-zh.git
68
+ mkdir -p /your/project/.kiro/skills
69
+ cp -r superpowers-zh/skills/* /your/project/.kiro/skills/
48
70
  ```
49
71
 
72
+ > 手动复制不会生成 `.kiro/steering/superpowers-zh.md` 索引,Kiro 不会知道这些 skill 的存在,你需要自己写一份索引。建议优先用 `npx superpowers-zh --tool kiro`。
73
+ >
74
+ > **不要**把正文直接拷进 `.kiro/steering/` —— 那正是本次修掉的问题。
75
+
50
76
  ## 使用
51
77
 
52
- Kiro 中,你可以:
53
- - 直接提到 skill 名称:「使用头脑风暴来分析这个需求」
54
- - 手动引用:在聊天中输入 `#brainstorming`
55
- - Skills 会根据任务类型自动激活
78
+ 装好重启 Kiro 后:
56
79
 
57
- ## 更新
80
+ - 直接描述任务即可,索引会引导它去匹配 skill:「帮我加一个导出功能」应触发 brainstorming
81
+ - 也可以点名:「用 brainstorming 分析这个需求」
82
+ - 手动引用索引本身:在聊天里输入 `#superpowers-zh`
83
+
84
+ ## 卸载
58
85
 
59
86
  ```bash
60
- cd /your/project
61
- npx superpowers-zh
87
+ npx superpowers-zh --uninstall
62
88
  ```
63
89
 
64
- 重新运行安装命令即可更新到最新版本。
90
+ 会删除 `.kiro/skills/` 下装过的 skill 和 `.kiro/steering/superpowers-zh.md`,并顺带清理旧布局残留。你自己的 steering 文件保留。
91
+
92
+ ## 更新
93
+
94
+ ```bash
95
+ npx superpowers-zh@latest --tool kiro
96
+ ```
65
97
 
66
98
  ## 获取帮助
67
99
 
68
100
  - 提交 Issue:https://github.com/jnMetaCode/superpowers-zh/issues
69
- - Kiro 文档:https://kiro.dev/docs/steering/
101
+ - Kiro Steering 文档:https://kiro.dev/docs/steering/
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
3
  "description": "AI 编程超能力中文版 — TDD、调试、代码审查等经过实战验证的工作方法论",
4
- "version": "1.7.8",
4
+ "version": "1.7.10",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
- "version": "1.7.8",
3
+ "version": "1.7.10",
4
4
  "engines": {
5
5
  "node": ">=20.0.0"
6
6
  },
@@ -16,14 +16,23 @@ Skills 使用 Claude Code 的工具名称。Qoder(阿里 AI IDE)大部分工
16
16
 
17
17
  ## Task 子 Agent 类型
18
18
 
19
- | Claude Code Agent | Qoder 等价 |
20
- |------------------|-----------|
21
- | `general-purpose` | `general-purpose` |
22
- | `Explore` | `explore-agent` |
23
- | `Plan` | `plan-agent` |
24
- | `claude-code-guide` | `qoder-guide` |
25
-
26
- Qoder 额外有 `browser-agent`、`code-reviewer`、`design-agent` 等专用 agent,依任务匹配选用。
19
+ > **适用范围:Qoder CLI。** 下表逐条核对自 [Qoder 官方文档 · 子代理](https://docs.qoder.com/zh/cli/subagent)(核对于 2026-08)。
20
+ > **Qoder IDE 的内置 subagent 集合与此不同,我们尚未核实** —— 见下方「IDE 与 CLI 的差异」。
21
+
22
+ | Claude Code Agent | Qoder CLI 等价 | 说明 |
23
+ |------------------|---------------|------|
24
+ | `general-purpose` | `general-purpose` | 通用研究型,适合复杂搜索、多文件分析、调用链追踪、多步骤任务 |
25
+ | `Explore` | `Explore` | 同名。只读代码探索 |
26
+ | `Plan` | `Plan` | 同名。只读设计与规划 |
27
+ | `claude-code-guide` | `qoder-guide` | 非 SDK 模式下可用 |
28
+
29
+ 文档另列出 `statusline-setup`(TUI 模式)。**没有内置的 `code-reviewer`** —— 文档里出现的 `api-reviewer` 是用户自建 subagent 的示例,不是内置项。需要专职审查者时,用 `general-purpose` 配 `superpowers:requesting-code-review` 的 `code-reviewer.md` 模板。
30
+
31
+ ### IDE 与 CLI 的差异
32
+
33
+ [#119](https://github.com/jnMetaCode/superpowers-zh/issues/119) 报告:在 **Qoder IDE** 里跑 `subagent-driven-development` 时,Qoder 说它只提供 `CodeReview` subagent、**没有** `general-purpose`,于是自行降级为「控制者直接实现 + CodeReview agent 做审查」。
34
+
35
+ 官方 subagent 文档只覆盖 CLI,没有说这套内置集合同样适用于 IDE。**所以上表在 Qoder IDE 上不保证成立。** 如果你在 IDE 里遇到「找不到 general-purpose」,那是预期内的差异,不是 superpowers-zh 装错了 —— Qoder 的自动降级本身是合理适配。
27
36
 
28
37
  ## Quest MCP 工具(Qoder 原生)
29
38