superpowers-zh 1.7.9 → 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.9",
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.9",
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.9",
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.9",
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,11 @@ 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.9 更新亮点**([完整 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)
20
24
  > - 🐛 **Hermes 用户请重装** —— 之前我们只装项目级 `.hermes/skills/`,而 Hermes 根本不读那个目录,等于**装了完全不生效**。现在改用 `npx superpowers-zh --global --tool hermes` 装到 `~/.hermes/skills/`([#45](https://github.com/jnMetaCode/superpowers-zh/issues/45))
21
25
  > - 🔍 **定位核查** —— 逐层比对上游,修掉 5 处「不是增量」的偏离;新增 audit 检查强制 fork 增量必须显式声明
22
26
  > - 🆕 **新增 Crush**(工具数 22 → 23)—— 若你已为 CC / Cursor / Codex 装过,Crush 其实已经能读到,别重复装
@@ -137,7 +141,7 @@ AI:在开始实现之前,我需要了解几个关键问题:
137
141
  | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | CLI | `npx superpowers-zh --global --tool hermes` | `~/.hermes/skills/` |
138
142
  | [Cursor](https://cursor.sh) | IDE | `npx superpowers-zh` | `.cursor/skills/` |
139
143
  | [Windsurf](https://codeium.com/windsurf) | IDE | `npx superpowers-zh` | `.windsurf/skills/` |
140
- | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/steering/` |
144
+ | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/skills/` |
141
145
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | CLI | `npx superpowers-zh` | `.gemini/skills/` |
142
146
  | [Codex CLI](https://github.com/openai/codex) | CLI | `npx superpowers-zh` | `.codex/skills/` |
143
147
  | [Aider](https://aider.chat) | CLI | `npx superpowers-zh` | `.aider/skills/` |
@@ -271,7 +275,7 @@ cp -r superpowers-zh/skills /your/project/.claude/skills # Claude Code / Co
271
275
  cp -r superpowers-zh/skills /your/project/.hermes/skills # Hermes Agent
272
276
  cp -r superpowers-zh/skills /your/project/.cursor/skills # Cursor
273
277
  cp -r superpowers-zh/skills /your/project/.codex/skills # Codex CLI
274
- cp -r superpowers-zh/skills /your/project/.kiro/steering # Kiro
278
+ cp -r superpowers-zh/skills /your/project/.kiro/skills # Kiro
275
279
  cp -r superpowers-zh/skills /your/project/skills/custom # DeerFlow 2.0
276
280
  cp -r superpowers-zh/skills /your/project/.trae/rules # Trae
277
281
  cp -r superpowers-zh/skills /your/project/.agents # Antigravity
@@ -295,7 +299,7 @@ cp -r superpowers-zh/skills /your/project/.qoder/skills # Qoder(阿里 AI
295
299
  | Claude Code | `CLAUDE.md` | 项目根目录 |
296
300
  | Copilot CLI | `CLAUDE.md` | 与 Claude Code 共用插件格式 |
297
301
  | Hermes Agent | `HERMES.md` 或 `.hermes.md` | 项目根目录,安装时自动生成 |
298
- | Kiro | `.kiro/steering/*.md` | 支持 always/globs/手动三种模式 |
302
+ | Kiro | `.kiro/steering/superpowers-zh.md`(索引,`inclusion: always`)+ `.kiro/skills/` | steering 每轮常驻,故只放索引 |
299
303
  | DeerFlow 2.0 | `skills/custom/*/SKILL.md` | 字节跳动开源 SuperAgent,自动发现自定义 skills |
300
304
  | Trae | `.trae/rules/project_rules.md` | 项目级规则 |
301
305
  | Antigravity | `GEMINI.md` 或 `AGENTS.md` | 项目根目录 |
package/README.zh-Hant.md CHANGED
@@ -16,7 +16,11 @@ 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.9 更新亮點**([完整 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)
20
24
  > - 🐛 **Hermes 使用者請重裝** —— 之前我們只裝專案級 `.hermes/skills/`,而 Hermes 根本不讀那個目錄,等於**裝了完全不生效**。現在改用 `npx superpowers-zh --global --tool hermes` 裝到 `~/.hermes/skills/`([#45](https://github.com/jnMetaCode/superpowers-zh/issues/45))
21
25
  > - 🔍 **定位核查** —— 逐層比對上游,修掉 5 處「不是增量」的偏離;新增 audit 檢查強制 fork 增量必須顯式聲明
22
26
  > - 🆕 **新增 Crush**(工具數 22 → 23)—— 若你已為 CC / Cursor / Codex 裝過,Crush 其實已經能讀到,別重複裝
@@ -137,7 +141,7 @@ AI:在開始實作之前,我需要了解幾個關鍵問題:
137
141
  | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | CLI | `npx superpowers-zh --global --tool hermes` | `~/.hermes/skills/` |
138
142
  | [Cursor](https://cursor.sh) | IDE | `npx superpowers-zh` | `.cursor/skills/` |
139
143
  | [Windsurf](https://codeium.com/windsurf) | IDE | `npx superpowers-zh` | `.windsurf/skills/` |
140
- | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/steering/` |
144
+ | [Kiro](https://kiro.dev) | IDE | `npx superpowers-zh` | `.kiro/skills/` |
141
145
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | CLI | `npx superpowers-zh` | `.gemini/skills/` |
142
146
  | [Codex CLI](https://github.com/openai/codex) | CLI | `npx superpowers-zh` | `.codex/skills/` |
143
147
  | [Aider](https://aider.chat) | CLI | `npx superpowers-zh` | `.aider/skills/` |
@@ -271,7 +275,7 @@ cp -r superpowers-zh/skills /your/project/.claude/skills # Claude Code / Co
271
275
  cp -r superpowers-zh/skills /your/project/.hermes/skills # Hermes Agent
272
276
  cp -r superpowers-zh/skills /your/project/.cursor/skills # Cursor
273
277
  cp -r superpowers-zh/skills /your/project/.codex/skills # Codex CLI
274
- cp -r superpowers-zh/skills /your/project/.kiro/steering # Kiro
278
+ cp -r superpowers-zh/skills /your/project/.kiro/skills # Kiro
275
279
  cp -r superpowers-zh/skills /your/project/skills/custom # DeerFlow 2.0
276
280
  cp -r superpowers-zh/skills /your/project/.trae/rules # Trae
277
281
  cp -r superpowers-zh/skills /your/project/.agents # Antigravity
@@ -295,7 +299,7 @@ cp -r superpowers-zh/skills /your/project/.qoder/skills # Qoder(阿里 AI
295
299
  | Claude Code | `CLAUDE.md` | 專案根目錄 |
296
300
  | Copilot CLI | `CLAUDE.md` | 與 Claude Code 共用外掛格式 |
297
301
  | Hermes Agent | `HERMES.md` 或 `.hermes.md` | 專案根目錄,安裝時自動產生 |
298
- | Kiro | `.kiro/steering/*.md` | 支援 always/globs/手動三種模式 |
302
+ | Kiro | `.kiro/steering/superpowers-zh.md`(索引,`inclusion: always`)+ `.kiro/skills/` | steering 每輪常駐,故只放索引 |
299
303
  | DeerFlow 2.0 | `skills/custom/*/SKILL.md` | 位元組跳動開源 SuperAgent,自動發現自訂 skills |
300
304
  | Trae | `.trae/rules/project_rules.md` | 專案級規則 |
301
305
  | Antigravity | `GEMINI.md` 或 `AGENTS.md` | 專案根目錄 |
@@ -6,6 +6,84 @@
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
+
9
87
  ## v1.7.9 (2026-08-11)
10
88
 
11
89
  **如果你在用 Hermes Agent,请重新安装。** 本版本之前我们对 Hermes 的支持是**坏的** —— 不是"不好用",是装完完全不生效。
@@ -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,7 +79,14 @@ 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
92
  // Hermes 官方文档:只自动加载 ~/.hermes/skills/("the primary directory and
@@ -222,6 +237,68 @@ ${skillTable}
222
237
  console.log(` ✅ Cline: bootstrap rule -> ${rulePath}`);
223
238
  }
224
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
+
225
302
  // Kilo Code:v7 起官方推荐 .kilo/rules/ + 在 kilo.jsonc 的 instructions 数组里显式登记,
226
303
  // 但那要改用户的 kilo.jsonc(JSONC 带注释,安全合并困难,且属于侵入用户配置)。
227
304
  // 官方同时明确 `.kilocode/rules/` 向后兼容且无需配置即生效,故走这条:零配置改动。
@@ -373,7 +450,8 @@ ${skillList}
373
450
  当任务匹配某个 skill 时,读取对应的 \`.aider/skills/<skill-name>/SKILL.md\` 并严格遵循其流程。
374
451
  `;
375
452
 
376
- // 写入 CONVENTIONS.mdAider 原生支持自动加载此文件)
453
+ // 写入 CONVENTIONS.md。注意:Aider **不会**自动加载这个文件(见 TARGETS 里的
454
+ // Aider 注释),所以写完必须告诉用户怎么激活,否则装了等于没装。
377
455
  // 如果已有 CONVENTIONS.md,追加而不覆盖
378
456
  const convPath = resolve(projectDir, 'CONVENTIONS.md');
379
457
  if (existsSync(convPath)) {
@@ -388,6 +466,18 @@ ${skillList}
388
466
  writeFileSync(convPath, wrapWithSentinel(content), 'utf8');
389
467
  console.log(` ✅ Aider: bootstrap -> ${convPath}`);
390
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('');
391
481
  }
392
482
 
393
483
  function generateGeminiBootstrap(baseDir, isGlobal) {
@@ -776,6 +866,10 @@ function installForTarget(target, baseDir, isGlobal) {
776
866
  generateCodeBuddyBootstrap(baseDir);
777
867
  }
778
868
 
869
+ if (target.name === 'Kiro') {
870
+ generateKiroSteeringIndex(baseDir);
871
+ }
872
+
779
873
  if (target.name === 'Cline') {
780
874
  generateClineBootstrapRule(baseDir);
781
875
  }
@@ -800,7 +894,13 @@ const BOOTSTRAP_DELETE = [
800
894
  '.agents/rules.md',
801
895
  '.clinerules/superpowers-zh.md',
802
896
  '.kilocode/rules/superpowers-zh.md',
897
+ '.kiro/steering/superpowers-zh.md',
803
898
  ];
899
+
900
+ // v1.7.9 及更早把 skill 正文直接装进 .kiro/steering/<skill>/,而 steering 每轮常驻 ——
901
+ // 那 335 KB 会一直进 prompt。升级的用户不会重跑旧版卸载,所以这里按老路径也清一遍,
902
+ // 否则新旧两份并存,开销问题原样保留。
903
+ const LEGACY_SKILL_DIRS = ['.kiro/steering'];
804
904
  const BOOTSTRAP_CLEAN_SECTION = [
805
905
  'CLAUDE.md',
806
906
  'GEMINI.md',
@@ -927,6 +1027,22 @@ function uninstall(isGlobal) {
927
1027
  .map(e => e.name)
928
1028
  );
929
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
+
930
1046
  const pool = isGlobal ? GLOBAL_TARGETS : TARGETS;
931
1047
  let totalSkills = 0;
932
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,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.9",
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.9",
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