Commit Graph

35 Commits

Author SHA1 Message Date
AI不止语
1081cefc42 fix(docs,site): README 把 2 个上游 skill 算成「中国特色」;二维码缺 height;官网外链没人验活
按主站逐项核对时查出的三处,都不是新引入的,是一直没人发现。

## ① README 的「中国特色 Skills(6 个)」与官网自相矛盾

三处口径本来就不一致:

| 位置 | 原来的说法 |
|---|---|
| 官网统计块 | 4 中国原创 |
| `.claude-plugin/plugin.json` | 20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留)|
| 两版 README | **6 个中国特色 Skills** ← 只有它是 6 |

README 把 `mcp-builder` 和 `workflow-runner` 也算进了「中国特色」。用 GitHub API 核过:
**上游 obra/superpowers 现有 14 个 skill,本仓 20 个,多出的正是 4 个 `chinese-*` 加这两个。**
它们来自上游、上游后来移除、本 fork 保留继续维护 —— 跟中国特色没有任何关系,把它们
算成中国原创等于虚报了 50% 的原创量。

改:规模表列名改「中国原创 Skills」值改 4(附注另有 2 个上游历史保留);小节标题拆成
「中国原创(4 个)· 上游历史保留(2 个)」;表格里这两行的「上游有吗?」由「无」改为
「曾有,上游已移除」——原来写「无」会被读成「我们原创的」,正是错误的来源。简繁同步。

(`using-superpowers` 正文里的「中国特色技能路由」是真实存在的小节名,不动。)

## ② 页脚三个二维码缺 height,加载时把页脚顶下去

`<img width="158">` 没有 height,浏览器算不出宽高比,图一到位就发生布局偏移(CLS)。
赞助商 banner 和 logo 都是齐的,只有二维码漏了。

没有写死数字,而是新增零依赖的 `imageSize()`(PNG 读 IHDR、JPEG 逐段找 SOFn),
构建时从文件读真实尺寸:258×258 / 1125×1680 / 316×316,与 `sips` 实测逐一吻合。
换二维码时属性自动跟随,不会悄悄退回错的比例。

顺带用同一个函数补了一条门禁:**赞助商声明的 `w`/`h` 必须与素材真实尺寸一致** ——
换了 banner 忘了改数字,页面就会按错的宽高比预留位置。

## ③ 外链验活门禁扫不到官网,三条付费展位链接一直无人看守

`verify-release` H 段只扫 `docs/*.md` 与两版 README,`site/build.mjs` 不在列。也就是
旗舰赞助商与两个常规位的推广链接挂掉了不会有任何人知道 —— 而这是要赔的。

扫描范围加上 `site/build.mjs`,并把 `compshare|cubence` 移出排除名单(原来被当噪音跳过),
正则补 `?=&` 让带 aff/referral 参数的推广链接被完整验证而不是截断到路径。
覆盖链接 45 → 52 条。

排除名单新增 `googletagmanager|google-analytics`:它们在 build.mjs 里是 **CSP 白名单条目
不是链接**,裸域 `googletagmanager.com` 实测返回 404,纳入等于凭空造一条误报 ——
这条门禁最忌讳的就是误报。

## 反向验证(三条逐一造错,必须拦下)

- 把官网的 book.aibuzhiyu.com 改成不存在的路径 -> `死链(404)`,FAIL 1
- 把 infistar banner 的 w/h 改成 800×368 -> 构建退出码 1,
  `banner 尺寸对不上:声明 800×368,实际 1269×337`
- 二维码尺寸不再有写死数字(`width="158"` 已从源码消失)

## 全量测试

官网 66 页构建 / 站内死链 0 / 无效 href="#" 0 / **缺 height 的 img 0**(原为 3);
audit 170 pass 0 fail;verify-release 115 pass 0 fail;CI 等价 20 skills 0 错误 v1.7.11;
tests/kimi · pi · opencode · brainstorm-server 全 PASS。
2026-09-02 21:19:58 +08:00
AI不止语
293b300365 refactor(sponsors): 旗舰赞助商文案改回分段展示,压成一整段把结构揉没了
赞助商给的原文本来是三条并列要点( 稳定承载 / 🧠 一个 Key 接入 / 🛠️ 赋能工作流),
上一版为了塞进卡片压成了一整段 —— 信息没丢,但骨架没了:卡片里是一堵 140 字的墙,
README 里也是。付费展位应当按赞助方的文案结构呈现,读者也更容易扫。

## 改法

- 官网旗舰卡:`desc` 整段 -> `points` 三条要点(图标 + 加粗小标题 + 说明),三语各一份;
  新增 `.flag-points` 样式,图标定宽一列、标题与说明纵向对齐,颜色走 --text /
  --text-dim,深浅主题都已定义
- 两版 README:改成「标题行 + 致谢行 + 三条 bullet + 🎁 福利行」,与赞助商原文一一对应,
  福利行补上原文的「superpowers-zh 用户专属福利」前缀
- 常规位不受影响,仍用整段 `desc`(卡片窄,四行截断的排版是为整段设计的)

## 门禁跟着分流

`assertSponsors()` 原来无差别要求每家都有 `desc`。现在按 tier 分:旗舰要
`img/w/h/points`,常规要 `logo/desc`;并新增一条 —— 三语要点**条数必须一致**,
每条的 `icon/t/d` 不能空。漏翻一条要点是最容易发生的漂移,页面上不会报错,
只会某个语言少一条。

反向验证:删掉繁體第三条 -> `points 三语条数不一致:zh/en/zht = 3/3/2`;
把简体第一条标题清空 -> `zh 要点缺 icon/t/d`。两条都按预期拦下。

## 验证

- 三语赞助页各渲染 3 条要点,图标 / 标题 / 说明逐条核对无误
- 官网 66 页构建通过,站内死链 0、无效 href="#" 0
- styles.css 改动后内容 hash 已变(?v=786ad3f27f),边缘缓存不会喂旧 CSS
- audit 170 pass / 0 fail;verify-release 115 pass / 0 fail
2026-09-02 18:03:43 +08:00
AI不止语
e77aaf6601 feat(sponsors): 新增旗舰赞助商 Infistar.cc 无限星河
旗舰位此前一直是「虚位以待」招商卡。Infistar.cc 上旗舰位,展示形式对齐
jnMetaCode/agency-agents-zh 的旗舰版式:整块大图 banner + 独立文案段 + 福利行,
排在两个常规位之前。

## 落位

| 位置 | 呈现 |
|---|---|
| 官网赞助商页(三语) | 顶部整块 banner(1269×337)+ 定位一句话 + 简介 + 福利 + 行动按钮;「虚位以待」卡自动消失,下面两家转入「更多赞助商」 |
| 福利汇总表 | 排第一行,优惠码列为 —(推广链接自带 aff,无需手填码) |
| 两版 README | 赞助商区块顶部 `<p align="center">` 整幅 banner + 文案段 + 🎁 福利行 + `<hr>`,与参考仓库同版式 |

## 文案口径

素材原文里福利写的是占位符 `[5美元等值测试额度 / 首充专属优惠]`,二选一未定 ——
这句会直接印在 README 和官网上,跟你确认后定为**「注册并完成首次调用领 5 美元
等值测试额度」**,不写没定下来的首充折扣。其余数字均照素材原文:一个 API Key 接入
Claude / ChatGPT / Gemini / Kimi / GLM / DeepSeek,价格低至官方渠道 1 折。

推广链接发版前实测 200(含 www 与裸域)。

## 顺带加一条构建期门禁

旗舰卡读 `img`,常规卡读 `logo` —— 两条渲染路径要的字段不一样。把 tier 从
flagship 改成 standard 而忘了配 logo,页面上就是个静默碎图,而赞助位是付费展示位,
图挂了就是事故。

`assertSponsors()` 在构建期校验三件事:字段按 tier 齐全、素材文件真的存在、
三语文案不缺。反向验证过 —— 把 img 改成不存在的文件、把 tier 改成 standard,
构建各自直接失败并指名道姓报出缺什么。

赞助素材规格说明(官网赞助 FAQ 三语 + site/README.md)同步更新为旗舰 1269×337 /
常规 800×368,并写明常规位还需方形小图标。

## 验证

- 官网 66 页构建通过,三语赞助页均渲染旗舰卡、「虚位以待」卡消失、福利表首行正确
- 全站链接扫描:站内死链 0、无效 `href="#"` 0;banner 落盘 dist 并本地预览 200
- README 引用的 3 个本地素材全部存在
- audit 170 pass / 0 fail;verify-release 115 pass / 0 fail(外链验活覆盖了新增的
  infistar.cc 推广链接)
- CI 等价检查 + tests/kimi · pi · opencode · brainstorm-server 全 PASS
2026-09-02 17:46:29 +08:00
AI不止语
d937312202 chore(release): v1.7.11 —— 剩下没查过的工具全查完了,又是四款「装了完全不生效」
v1.7.10 查出三款装错,当时的结论是「既然错过一次,就该问一句还有几个」。这一版
把剩下的逐款对官方文档核完(拿不到文档的对源码)。

答案:又是四款装了完全不生效,全部是我们自己写的路径、全部没查过官方文档。

## 必须重装的六款

| 工具 | 问题 |
|---|---|
| Codex CLI | 项目级装到 `.codex/skills`,官方扫描清单里从来没有这个目录 |
| VS Code (Copilot) | 20 个文件 Copilot 一个都不读,且不写任何引导 |
| Windsurf | `--global` 装到 `~/.windsurf/skills`,官方是 `~/.codeium/windsurf/skills/` |
| DeerFlow | 检测标记 `deer_flow` 在真实仓库里不存在,从没被自动检测到过 |
| Qwen Code | 无 bootstrap(skill 是死重);文档还把它跟通义灵码搞混了 |
| Claw Code | 无 bootstrap、且是 23 款里唯一没有安装文档的一款 |

## 其余

- CodeBuddy / CodeArts 拿到官方用户级路径出处,补 `--global`(全局支持 9 → 11 款)
- 4 条死链,其中 2 条是编造出来的仓库地址(`anthropics/openclaw`、
  `anthropics/antigravity` 都不存在)
- 官网工具墙停在 20 款:Cline / Kilo Code / Crush 的用户在下拉里找不到自己的工具;
  skill 详情页 6 条死链;新增赞助商页
- 5 条新门禁,全部做过反向验证:全局落盘位置、外链验活、官网工具列表条目数、
  官网全局清单覆盖、两条 shell 静默失效坑

## 版本号

`v1.7.11 起…` 这句话此前散在 8 处文档里,而 package.json 还停在 1.7.10 ——
用户装到的版本里根本没有那些修复。7 个声明文件经 scripts/sync-plugin-version.js
同步到 1.7.11,两版 README 的更新亮点块换成本版内容。

## 发版前全量验证(全绿)

| 项 | 结果 |
|---|---|
| `scripts/audit.sh` | 170 pass / 0 warn / 0 fail |
| `scripts/verify-release.sh` | 115 pass / 0 fail |
| CI 等价检查(frontmatter / package.json / --help) | 20 skills 0 error,v1.7.11 |
| tests/kimi · pi · opencode · brainstorm-server | 全 PASS(6 / 1 / 32 用例) |
| 官网 66 页构建 + 全站链接扫描 | 站内死链 0,无效 `href="#"` 0 |
| 官网给出的 23 条安装命令逐条实跑 | 19 款自动检测 + 4 款显式命令,各装 20 skills ✓ |
2026-08-28 22:37:53 +08:00
AI不止语
1f66b091b7 fix(site): 官网工具墙停在 20 款 —— Cline / Kilo Code / Crush 的用户在下拉里找不到自己的工具
起因是核对首页:统计块写着「20 支持工具」,同一屏下面的标题写着「一套 skill,
23 款工具通用」,FAQ 里又老老实实枚举了 23 款。三处自己打自己。

根因:文案计数早就跟着 installer 改到了 23,但 `site/build.mjs` 的 `TOOLS`
数组从来没人补 —— audit 只校验文案里的数字,不校验列表本身。

## 1. 工具列表补 3 款 + 修 4 处错的

`TOOLS` 20 条 -> 23 条(= TARGETS 22 条 + Copilot CLI 单独计数)。
统计块的 `20` 是硬编码的,改成 `TOOLS.length`。

漏的三款(installer 一直支持,官网从没有过):Cline、Kilo Code、Crush。

已有条目里查出的错(逐条实测过命令):

| 条目 | 原来 | 现在 | 依据 |
|---|---|---|---|
| Claw Code | `--tool claw` | 直接 `npx superpowers-zh` | detect 是 `.claw` / `CLAW.md`,实测能自动检出 |
| Hermes Agent | `--tool hermes` | `--global --tool hermes` | 官方只自动加载 `~/.hermes/skills/`,项目级要手写 config.yaml,给项目级命令等于给「装了不生效」 |
| Qwen Code | 类型 IDE | CLI | 它是 QwenLM/qwen-code 命令行工具,不是通义灵码 |
| Antigravity | 类型 CLI | IDE | Google 的 AI IDE,docs/README.antigravity.md 里本来就这么写 |

`auto: true/false` 两态不够用了(Hermes 是「能检出但项目级不生效」),换成
`mode: auto / manual / global`,三语各补一条对应说明文案。

## 2. FAQ 的「支持全局」清单少了 4 款

写着 7 款,installer 实际 11 款 —— CodeArts / Crush / Hermes / CodeBuddy
陆续拿到 `--global` 之后这句话没跟。三语同步补齐。
两版 README 的同一句也少了 CodeArts(v1.7.11 补 --global 时漏改),一并修。

## 3. skill 详情页有 6 条死链

`SKILL.md` 里指向兄弟文件的相对链接(`implementer-prompt.md`、
`../requesting-code-review/code-reviewer.md` 等)站点上根本没有这些 .md:
`../` 开头的直接 404,不带 `./` 的被 md.mjs 的 scheme 白名单打成 `href="#"`
—— 点了没反应,比 404 还难查。

`renderMarkdown(src, base)` 加基址参数,相对链接解析到 GitHub 源文件。
5 个目标地址逐个 curl 过,都是 200。全站扫描:死链 0、`href="#"` 0。

## 4. 加两条门禁,堵住这次的漏法

audit 原来只数文案里的数字,这次两个问题它一个都发现不了。补:

- 官网 `TOOLS` 条目数必须 = TARGETS + 1
- 官网 FAQ 全局清单必须包含 installer 里每个带 `global:` 的工具

反向验证过:删掉 Crush、去掉 CodeArts,两条各自报错。

audit 170 pass / 0 fail(新增 2 条);verify-release 114 pass / 1 fail,
唯一那条是 windsurf.com 返回 429 限流,改动前的干净树上同样失败,与本次无关。
2026-08-28 21:48:01 +08:00
AI不止语
747cfa4a0d docs(readme): 更新亮点从 17 条砍到 4 条,其余回归 Release Notes
README 顶部的「更新亮点」是历次发版累积出来的,已经混进 Cline/Kilo
Code(v1.7.6)、Windows bootstrap(v1.7.3)等好几个老版本的条目,共 17
行,把「这是什么 / 怎么装」整段推到首屏之外。

现在只留需要用户动手的 4 条(Aider / Kiro / Hermes 请重装 + 新增
Crush),末尾一行指向 RELEASE-NOTES.zh.md。删掉的 13 条逐条核对过,在
RELEASE-NOTES.zh.md 里全都有,没有信息丢失。

简繁两版同步。
2026-08-18 18:55:42 +08:00
AI不止语
fb63548c9d fix(installer): Codex 项目级装到 Codex 从不扫描的目录;CodeArts 补 --global
## Codex:项目级又是「装了完全不生效」

官方 skills 文档(developers.openai.com/codex/skills,现 308 跳到官方新文档站)
给出的扫描目录**完整清单**:

    $CWD/.agents/skills、$CWD/../.agents/skills、$REPO_ROOT/.agents/skills
    $HOME/.agents/skills、/etc/codex/skills、内置 skill

**没有 .codex/skills。** 两次分别追问确认「.codex/skills 是否曾被扫描」,答案都是
从未出现。而我们项目级正是装到 .codex/skills。

全局(~/.agents/skills)一直是对的 —— 原注释也写明了「不是 ~/.codex/skills」,
说明当初查过全局却没顺手核项目级。改为 .agents/skills,并在安装时清理旧位置
(只清我们装的那些,用户自己放在 .codex/skills 下的不动,已实测)。

与 Antigravity 共用 .agents/skills 是 Agent Skills 开放约定,不是冲突。

## 这个改动暴露出一个既有 bug:检测有顺序依赖

改完后测试立刻报「检测 .codex/ -> 得到「Antigravity,Codex CLI」,期望「Codex CLI」」。

根因:自动检测是**边装边判**的。Codex 装到 .agents/skills 会创建 .agents/,
循环走到 Antigravity(detect: '.agents')时它就被误判为「项目里有这个工具」,
于是多装一份。这个坑在任何「装了 A 会创建 B 的检测标记」的组合上都会犯。

改为先把所有工具的检测结果一次性算完再开始装 —— 检测必须基于**安装前**的项目
状态。实测:只有 .codex 时只装 Codex;同时有 .codex 与 .agents 时两款都装且
.agents/skills 下仍是 20 个(不重复)。

## CodeArts:官方已证实用户级路径,补上 --global

原注释只写「用户在 #20 确认」,没有官方出处。已补华为云官方用户指南出处:

    项目级:项目根目录的 ./.codeartsdoer/skills/
    个人级:%USERPROFILE%/.codeartsdoer/skills   即 ~/.codeartsdoer/skills

既然已证实,--global 从拒绝名单移出并加落盘断言。实测装 20 个到
~/.codeartsdoer/skills、卸载后 HOME 零残留。仍是 skills-only —— 其 bootstrap
约定未证实,不猜。

## 顺带核实

- Cursor:官方 skills 文档确认 .cursor/skills/<name>/SKILL.md 
- OpenCode:官方 skills 文档确认项目级与全局都对 (唯二全对的之一)
- Kimi / Pi:不在 TARGETS 里,走 plugin manifest 与扩展分发;已确认 docs 没有
  承诺 --tool kimi/pi,installer 也正确拒绝这两个名字,无虚假承诺

audit 168 pass / 0 warn / 0 fail;verify-release 115 pass / 0 fail。
2026-08-13 05:54:52 +08:00
AI不止语
0e3fbc4830 fix(installer): VS Code 装的 20 个文件 Copilot 一个都不读(又一个纯死重)
## 问题

官方文档(code.visualstudio.com/docs/copilot/customization/custom-instructions)
明确 Copilot 只自动读这几处:

    .github/copilot-instructions.md / AGENTS.md / CLAUDE.md   (始终生效)
    .github/instructions/*.instructions.md                    (按 applyTo 匹配)

而我们把 20 个 skill 拷进 `.github/superpowers/` —— **不在其中**,而且装完
**什么引导都不写**。也就是说 VS Code 用户装完,Copilot 一个字都不会读。

旧文档更说明问题:它写着「由于 Copilot 主要通过单个指令文件工作,建议创建
.github/copilot-instructions.md 引用 skills」并给了示例 —— 我们知道需要引导,
却让用户自己动手,而绝大多数人不会照做。

## 改法

自动生成 `.github/instructions/superpowers-zh.instructions.md`:

    ---
    applyTo: "**"          # 关键:省略则只能手动挂载 = 白写
    name: Superpowers-ZH
    description: …
    ---

约 4.5 KB 的索引(核心规则 + 20 个 skill 触发条件表),正文仍留在
`.github/superpowers/` 按需读取 —— 与 Cline / Kilo / Kiro 同一套思路:applyTo "**"
的文件对每个请求都生效,正文塞进去就是每轮常驻开销。

**刻意不动用户的 .github/copilot-instructions.md** —— 那是他们的文件。用我们自己
的 .instructions.md,互不干扰,卸载也能精确删除。

检测标记补上 `.github/instructions`(用了 instructions 机制的项目都有),原来只认
`.github/copilot-instructions.md`。

## 顺带核实的两款

- **Cursor**:cursor.com/docs/skills 确认 .cursor/skills/<name>/SKILL.md 启动时
  自动发现 —— 我们是对的。
- **OpenCode**:opencode.ai/docs/skills 确认 .opencode/skills/ 与
  ~/.config/opencode/skills/ —— 项目级和全局都对。它同时扫 .claude/skills 与
  .agents/skills,已在注释里写明「装过 CC 或 Antigravity 的别重复装」。

## 验证

- 装:正确识别 -> 生成 instructions(applyTo "**",4503 字节)+ skills 到
  .github/superpowers/
- 卸载:只删我们的,用户的 my-own.instructions.md 与 copilot-instructions.md
  原样保留
- verify-release 新增 VS Code 段(文件存在 / applyTo 断言 / 20 行索引 / 指向
  .github/superpowers/),111 -> 115 pass
- audit 168 pass / 0 warn / 0 fail
2026-08-12 21:03:40 +08:00
AI不止语
43edf34b2c fix(installer): Windsurf 全局装错目录(装了不生效)+ 两个静默失效的检查
## Windsurf --global 一直装在 Windsurf 不读的地方

官方文档(docs.windsurf.com/windsurf/cascade/skills)写明两个路径**不同构**:

    项目级:.windsurf/skills/<skill-name>/
    用户级:~/.codeium/windsurf/skills/<skill-name>/   ← 在 .codeium 下

我们的 --global 装到 ~/.windsurf/skills —— Windsurf 不读那里。又一个 Hermes 同款
「装了完全不生效」。项目级路径是对的,只有全局错。

Cursor 一并核实:cursor.com/docs/skills 确认 .cursor/skills/<name>/SKILL.md
启动时自动发现,无需配置 —— 我们装的是对的。

## 测试为什么没抓到:只验退出码,不验落盘位置

verify-release 的 C 段对全局白名单只断言「退出码为 0」。装到错目录退出码照样是 0。
**「跑通了」不等于「装对了」。** 新增 GLOBAL_DIR 断言:10 款全局工具逐个断言
skill 真的落在官方读的那个目录,外加一条自检(GLOBAL_DIR 必须覆盖 GLOBAL_OK 全部,
以后加全局工具不能漏断言)。

双向验证:把 Windsurf 全局路径改回旧值,立刻报
「--global windsurf: .codeium/windsurf/skills 里是 0 个 skill,期望 20」。

## 两个我自己写出来的静默失效

**① `grep -P` 不可移植。** 新加的「变量后紧跟多字节字符」检查第一版用了 grep -P,
在交互 shell 里(ugrep)看着能用,进了脚本跑的是 /usr/bin/grep(BSD grep,不支持
-P),配上 2>/dev/null 就成了永远匹配不到的死检查 —— 正是我这两天一直在修的那类
bug,自己又造了一个。改用 LC_ALL=C + ERE:C locale 下多字节按单字节处理,>0x7F
的字节落在 [^ -~] 之外,BSD/GNU 都支持。

**② 同一个全角括号坑又踩一次。** `期望 $EXPECT_SKILLS(…)` 里全角括号被吞进变量
名,set -u 下脚本半途崩掉。这已经是本仓第二次(第一次是死链检查的 $code)。所以
把它固化成 audit 1e,注释行排除,双向验证过。

## 一次操作事故(记下来)

用 /tmp 备份做变异测试时,把 verify-release.sh 的未提交改动整段覆盖没了,
git diff 才发现。变异测试应该用 git 保护现场,不该用 /tmp 拷贝。

## 其它

- 外链验活跳过分支补 ok,否则 PASS 总数随网络漂移、发版记录对不上(实测连跑两次
  稳定 111)
- docs/README.windsurf.md 重写:两个路径不同构、渐进式披露(默认只给模型 name +
  description,不造成常驻开销)、跨工具发现(也扫 .agents/skills 与 .claude/skills,
  装过 Antigravity 或 CC 的不必重复装)

audit 168 pass / 0 warn / 0 fail;verify-release 111 pass / 0 fail。
2026-08-12 20:42:21 +08:00
AI不止语
226638b969 feat(installer): Claw Code 补 bootstrap + 文档;CodeBuddy 补 --global(官方已证实)
核查最后两款。这两款的**路径都是对的**,问题在缺失的能力和文档。

## Claw Code

路径拿到了源码级证据(ultraworkers/claw-code):
- rust/crates/plugins/src/lib.rs 明写 "discovers skills from local roots such as
  `.claw/skills`, `.omc/skills`, `.agents/skills`, `~/.omc/skills` …"
- USAGE.md 列出根指令文件优先级 CLAUDE.md > CLAW.md > AGENTS.md

三处缺口:

**① 没写 bootstrap。** 只装 skills,CLAW.md 一个字都没写 —— 与 Qwen Code 同款
问题,skill 能被发现但不会自动触发。已补 generateClawBootstrap。

**② 一个真实的遮蔽陷阱。** 因为优先级是 CLAUDE.md > CLAW.md,项目里若已有
CLAUDE.md(不少工具都会生成它),就可能压过我们刚写的 CLAW.md,表现为「装了
不触发」。安装器现在检测到这种情况会主动提示,并给出解法(让 CLAUDE.md 也带
引导)。这种坑不说清楚,用户只会以为我们的东西不好使。

**③ 23 款工具里唯一没有安装文档的一款。** 已补 docs/README.claw.md,含上面两条
源码出处、遮蔽陷阱说明,以及一条实用提醒:claw 也扫 .agents/skills,装过
Antigravity 的项目其实已经能读到,再装会加载两份。

## CodeBuddy

路径和 bootstrap 都对(官方 codebuddy.cn/docs/cli/skills 与 /codebuddy-dir 确认
.codebuddy/skills/ + CODEBUDDY.md)。但我们的文档写着:

> 目前仅支持项目级安装。CodeBuddy 的用户级(全局)skills 加载路径尚未验证。

现已核实 —— 官方目录结构文档确认全局与项目级同构:

    skills   ~/.codebuddy/skills/       .codebuddy/skills/
    记忆文件  ~/.codebuddy/CODEBUDDY.md   项目根 CODEBUDDY.md(两处等价)
    优先级   项目级 > 用户级 > 插件级

已补 --global 支持:TARGETS 加 global、bootstrap 支持 isGlobal(全局写
~/.codebuddy/CODEBUDDY.md)、全局卸载清单加上它。文档链接一并从
copilot.tencent.com 换成官方文档域名 codebuddy.cn。

## 验证

- Claw 项目级:装 -> CLAW.md 生成 -> 卸载零残留;已有 CLAUDE.md 时正确给出提示
- CodeBuddy 全局:装到 ~/.codebuddy/skills + ~/.codebuddy/CODEBUDDY.md,
  bootstrap 内容指向 ~/.codebuddy/skills/,卸载后 HOME 零残留
- CodeBuddy 项目级不受影响,仍指向 .codebuddy/skills/
- verify-release 白名单 codebuddy 由「应拒绝」移到「应成功」,110 pass / 0 fail
- audit 167 pass / 0 warn / 0 fail(新增 docs/README.claw.md 进交叉引用检查)
2026-08-12 19:48:14 +08:00
AI不止语
033adc3768 fix(docs): 4 条死链,其中 2 条是编造的仓库地址;新增外链验活门禁
核查 OpenClaw 时发现 docs/README.openclaw.md 链的是
github.com/anthropics/openclaw —— **那个仓库不存在(404)**,真正的是
openclaw/openclaw。顺手全仓扫了一遍外链,45 条里 4 条是死的。

## 修掉的 4 条

| 原链接 | 状态 | 改为 |
|---|---|---|
| github.com/anthropics/openclaw | 404,仓库不存在 | github.com/openclaw/openclaw |
| github.com/anthropics/antigravity | 404,且 Antigravity 是**谷歌**的产品不是 Anthropic 的 | antigravity.google |
| huaweicloud.com/product/codeartsdoer.html | 404,产品页改版 | codearts.huaweicloud.com |
| docs.codeium.com/windsurf | Windsurf 已从 codeium.com 迁走 | docs.windsurf.com/... |

前两条是**编造出来的出处**。这比没有出处更坏:它让人以为核实过了。

## OpenClaw 本身:路径是对的

顺带核实完了。docs.openclaw.ai/tools/skills 确认 `<workspace>/skills` 为最高
优先级、`~/.openclaw/skills` 为全局,自动发现无需配置,与我们装的一致。

## 固化成检查(verify-release H 段)

编造链接不该靠人肉发现。新增外链验活,两遍制:

- 第一遍 xargs -P 10 并行快扫,只产出「嫌疑名单」,**不下结论**
- 第二遍对嫌疑名单串行复核,放宽到 25s 并让 curl 自己重试;两遍都判死才算死

两遍制不是过度设计 —— 第一版单遍串行把整个脚本拖到超时跑挂了;改并行后又实测
到 docs.codeium.com 在 8s 上限下偶发超时、误报成死链。**一个会误报的门禁比没有
门禁更糟:人会学会忽略它。** 连跑 3 次确认稳定,全绿。

无网络时整段跳过,不阻塞离线发版。

顺带修了个 bash 坑:`bad "死链($code): $u"` 里全角括号会被当成变量名的一部分,
报 `code�: unbound variable`。改用 ${code} 花括号界定。

双向验证:塞一条 github.com/anthropics/this-repo-does-not-exist 会被抓出并 FAIL,
移除后恢复全绿。

verify-release 108 -> 109 pass;audit 166 pass / 0 warn / 0 fail。
2026-08-12 19:34:16 +08:00
AI不止语
b01a91c267 fix(installer): Qwen Code 缺 bootstrap(skill 是死重)+ 文档把产品搞混了
核查第五款。路径本身是对的 —— 这是查过的几款里第一个没装错地方的。但另有
两个问题。

## ① 我们把产品搞混了

docs 标题写「Qwen Code (通义灵码)」,链接指向 tongyi.aliyun.com;README 里
把它标成「IDE 插件」。

实际:Qwen Code 是 QwenLM/qwen-code 这个**命令行工具**(Gemini CLI 的 fork),
跑在终端里。通义灵码是阿里的 IDE 插件,**是另一个产品**,配置路径完全不同。
照着我们的文档去配通义灵码是配不通的。

这跟 #119 的 Qoder 表「没标产品面」是同一类错误:把两个不同产品面的东西
混成一份说明。docs 与简繁 README 一并更正(类型也从「IDE 插件」改回 CLI)。

## ② 只装 skills、不写 bootstrap —— skill 是死重

实测装完项目里只有 .qwen/skills/,一个引导文件都没写。而 Claude 写 CLAUDE.md、
Gemini 写 GEMINI.md,Qwen Code 的对应物 QWEN.md 我们完全没用。

按上游的原则:没有 bootstrap,skill 就是死重 —— 文件在磁盘上但很少被调用。

两套机制都查了官方文档:
- skills:qwenlm.github.io/.../features/skills/ 确认 .qwen/skills/ 与
  ~/.qwen/skills/ 自动发现,无需配置
- QWEN.md:分层记忆的默认上下文文件就是 QWEN.md,从 cwd 逐层向上到项目根、
  以及全局 ~/.qwen/ 都会被扫描并拼接(可用 contextFileName 改名)

已补 generateQwenBootstrap,复用 Gemini 那套结构:项目级写 ./QWEN.md,全局写
~/.qwen/QWEN.md;已有文件则用哨兵注释追加而不覆盖。

顺带补上全局卸载的缺口:qwen 在 GLOBAL_OK 里,--global 会写 ~/.qwen/QWEN.md,
原来 GLOBAL_BOOTSTRAP_CLEAN_SECTION 只有 .claude/CLAUDE.md,装卸一轮会在用户
主目录留残留。

## 验证

- 项目级:已有 QWEN.md 时追加,卸载后逐字节恢复用户内容
- 全局:写 ~/.qwen/QWEN.md,卸载后 HOME 下残留 0 个文件
- verify-release 新增 Qwen 段(bootstrap 写入 / 不覆盖用户内容 / 指向
  .qwen/skills/ / 卸载切除干净 / 不误删用户内容 / 全局零残留),101 -> 108 pass
- audit.sh 166 pass / 0 warn / 0 fail

## 范围

installer、docs、简繁 README、verify-release 均为 fork 自有,零上游偏离。
2026-08-12 19:17:26 +08:00
AI不止语
d83d3f9dc2 chore(release): v1.7.10 —— 工具支持层系统核查:Aider / Kiro / Qoder 三处修正
版本号:7 份声明文件 1.7.9 -> 1.7.10。包内文件 109(无增减)。

内容见 RELEASE-NOTES.zh.md v1.7.10 条目。起因是 v1.7.9 修 Hermes 时发现我们
从支持它起就装错了目录 —— 既然错过一次,就该问「还有几个」。答案是又查出三个,
全部是我们自己那层写的、全部没查过官方文档:

- Aider:检测标记 .aider 目录根本不存在(真实项目从没被检测到过),且
  CONVENTIONS.md 不会被自动加载(官方要求 --read)。两错叠加 = 完全不可用。
- Kiro:steering 每轮常驻,我们把 20 个 skill 正文全塞进去 —— 实测 335 KB/轮。
  改索引式后 4.4 KB,76 倍;升级时自动清旧布局(不清等于没修)。
- Qoder:subagent 映射表 4 行错 2 行,且没标适用范围(只覆盖 CLI,IDE 不同)。

同时堵上测试盲区:Aider 那个 bug 能在 90 项全绿下活着,是因为测试写的是
mkdir .aider 再断言认出 Aider —— 拿代码测代码。已补真实标记与 Kiro 两条硬
回归守卫,verify-release 90 -> 101 pass。

发版前门禁
- audit.sh 166 pass / 0 warn / 0 fail
- verify-release.sh 101 pass / 0 fail
- dry-run:1.7.10 / 109 文件
2026-08-12 19:07:14 +08:00
AI不止语
ad32b2546b fix(installer): Kiro 把 335 KB 塞进每一轮对话 —— 改为索引式(Aider 的反面)
继 Aider 之后核查 Kiro。这次的错跟 Aider 正好相反:不是不加载,是**全部加载、
每一轮都加载**。

## 问题

Kiro 官方文档(kiro.dev/docs/steering)明确:`.kiro/steering/` 下的文件默认
`inclusion: always`,"loaded into every Kiro interaction automatically"。

而我们把 20 个 skill 的正文整个装进了 `.kiro/steering/`。实测:

    47 个 md 文件 / 342914 字节 ≈ 335 KB —— 每轮对话全量进上下文

这跟我们当初给 Cline / Kilo Code 修的是同一个问题(那次是 182 KB),解法当时
就设计好了,只是没意识到 Kiro 的 steering 也是常驻性质。

## 改法:照搬 Cline / Kilo 的索引式

- skills 正文改装 `.kiro/skills/`(不被自动加载)
- `.kiro/steering/superpowers-zh.md` 只放索引:核心规则 + 20 个 skill 的触发
  条件表,带 `inclusion: always`

335 KB -> 4.4 KB,76 倍。

## 升级路径(这条最要紧)

老用户通常直接重装而不会先卸载。不清旧布局的话新旧两份并存,335 KB 一点没减 ——
那这次修了等于没修。所以安装时先清 `.kiro/steering/` 下与我们 skill 同名的目录,
并打印清理了几个;卸载同样处理(LEGACY_SKILL_DIRS)。

只删同名目录,**用户自己写的 steering 文件不动** —— 已实测。

## 文档里两个编造的 frontmatter 键

docs/README.kiro.md 写着加载模式是 `alwaysApply: true` 和 `globs: "*.ts"` ——
这两个键 Kiro 文档里**根本不存在**,是 Cursor / Trae 的约定被误写成了 Kiro 的。
Kiro 实际用 inclusion / fileMatchPattern。已按官方文档重写整篇,并补上默认值
就是 always 这一条(这正是 335 KB 的成因)。

## 回归守卫

verify-release.sh 新增 Kiro 段:索引存在、带 inclusion: always、20 行表、指向
.kiro/skills/,以及两条硬守卫 ——
  - steering 下只能有 1 个 md
  - steering 常驻总字节 < 20 KB
外加升级路径断言:旧布局必须被清、用户自己的文件必须保留。
双向验证过:模拟退回旧布局后两条断言都会失败。

verify-release 93 -> 101 pass。

## 验证

- 全新装:steering 1 个文件 4437 字节,.kiro/skills/ 下 20 个 skill
- 从旧布局升级:342971 -> 4494 字节,清理 20 个旧目录,用户文件保留
- 卸载:零残留,用户 steering 文件逐字节保留
- audit.sh 166 pass / 0 warn / 0 fail、verify-release.sh 101 pass / 0 fail

## 范围

installer、docs、README 简繁、verify-release 均为 fork 自有,零上游偏离。
2026-08-12 18:58:54 +08:00
AI不止语
4a53c1e6ab chore(release): v1.7.9 —— 修复 Hermes 支持一直不生效(#45)
版本号:7 份声明文件 1.7.8 -> 1.7.9。包内文件 109(无增减)。

内容见 RELEASE-NOTES.zh.md v1.7.9 条目。要点:我们从支持 Hermes 起就只装
项目级 .hermes/skills/,而 Hermes 只自动加载 ~/.hermes/skills/ —— 装了完全
不生效,比不支持更糟。改为全局推荐 + 项目级打印可粘贴的 external_dirs 配置。
修复代码本体见 441d024,本次为发版收尾。

顺带修掉发版工具的一个真问题:bump-version.sh 缺 jq 时不退出,逐文件打
"command not found" 后继续跑到 unbound variable —— 版本号一个没写,输出里
却有 "Done."。加前置检查挡住(本次发版即踩到)。

发版前门禁
- audit.sh 166 pass / 0 warn / 0 fail
- verify-release.sh 90 pass / 0 fail
- dry-run:1.7.9 / 109 文件
2026-08-11 20:53:41 +08:00
AI不止语
441d024cd6 fix(installer): Hermes 支持一直是坏的 —— 改为全局安装并给出可粘贴配置(#45)
## 我们装错了目录,一直没生效

#45 报告人说「项目级 .hermes/skills/ 里的 20 个 skill 全部返回 404,必须手动
复制到 ~/.hermes/skills/ 才被识别」。查官方文档核实,他是对的:

hermes-agent.nousresearch.com/docs/user-guide/features/skills 明确
Hermes 只自动加载 ~/.hermes/skills/(原文 "the primary directory and source
of truth"),项目级目录不被自动发现;外部目录必须写进 ~/.hermes/config.yaml
的 skills.external_dirs。

而我们从支持 Hermes 起就只装项目级 .hermes/skills/ —— 那个目录 Hermes 根本
不读。这不是「不好用」,是「装了完全不生效」,比不支持更糟。

## 改法

- TARGETS 给 Hermes 加 global(~/.hermes/skills),全局成为推荐装法
- 项目级仍保留(skills 可随仓库分发),但装完打印**可直接粘贴**的配置片段:
      skills:
        external_dirs:
          - <项目绝对路径>/.hermes/skills
  不替用户改 config.yaml —— 那是他们的文件。文档里也写明「配置里不存在的
  路径会被静默跳过」,所以写错不会报错、只会没生效。
- 全局模式**不写 bootstrap**:Hermes 的用户级指令文件约定没有公开文档,
  往 $HOME 根目录写 HERMES.md 是猜路径 + 污染主目录。实测确认全局装完
  $HOME 根目录 0 个文件、卸载 0 残留。

## 文档与清单

- docs/README.hermes.md 开头重写,把「必须全局」放在最前面,并注明
  v1.7.8 及更早只支持项目级 = 装了不生效,是我们的实现错误
- 简繁 README:全局支持清单加 Hermes Agent,工具表的安装命令改为 --global
- verify-release.sh 的 GLOBAL_OK 加 hermes、GLOBAL_NO 移除

## 验证

- 全局:装 20 skills 到 ~/.hermes/skills、$HOME 根目录 0 文件、卸载 0 残留
- 项目级:正确打印 A/B 两种方案与绝对路径的 config.yaml 片段
- audit.sh 166 pass / 0 warn / 0 fail、verify-release.sh 90 pass / 0 fail

注:#45 的后半部分(7 个 skill 文件里 24 处硬编码 Claude 工具名)本次未动。
那属于行为塑造内容,且 references/hermes-tools.md 已有完整映射表,
应走「强化映射表引用」而非把正文改成某个 harness 专属工具名。
2026-08-08 14:55:21 +08:00
AI不止语
f290def463 chore(release): v1.7.8 —— 定位核查:修掉 5 处对上游的偏离并加检查固化
版本号:7 份声明文件 1.7.7 -> 1.7.8。包内文件 108 -> 109(antigravity-tools.md)。

内容见 RELEASE-NOTES.zh.md v1.7.8 条目。要点:按「只是翻译上游 + 增加更多
工具支持」这个定位逐层核查,查出 5 处偏离(缺文件、漏同步 3 个 commit、
漏译 2 节、编号缺陷、增量插在上游步骤中间),全部修掉;并新增 audit 3c-bis
把「fork 增量必须显式声明」变成可执行检查。

发版前门禁
- audit.sh 166 pass / 0 warn / 0 fail
- verify-release.sh 90 pass / 0 fail
- dry-run:1.7.8 / 109 文件
2026-08-08 14:30:03 +08:00
AI不止语
43a46f7912 refactor(skills): fork 增量改为外挂式并强制声明,保证上游各节不被改动
按维护者决定:保留翻译 skill 内的 fork 增量,但必须做到「不影响上游部分」。
原来的做法做不到这一点 —— 增量是**插在上游步骤序列中间**的。

## 问题

executing-plans 把「处理常见异常」插成了步骤 3,于是上游的
Step 3: Complete Development 被挤成了我们的「步骤 4」。这就不是「不影响上游」,
而是改了上游的结构编号;Remember 也被多加了一条,从上游的 6 条变成 7 条。

## 改法:外挂式

- 「处理常见异常」移出步骤序列,改为独立小节,挂在「何时停下来求助」之后
  (它本就是那一节里「缺少依赖、测试失败、指令不清」三种情形的展开)
- 步骤编号恢复为 1/2/3,与上游逐条对应
- Remember 恢复为上游的 6 条;被多加的「每个任务单独提交」并入外挂节
- 节内首行显式标注:本节是 superpowers-zh 的增量内容,上游没有

using-superpowers 的「中国特色技能路由」同样加上该标注。

现在 14 个翻译 skill 里,上游各节全部逐节对应;多出的 2 节都带标注。

## 让纪律可执行:audit 新增 3c-bis

光靠 README 声明会漂移。新增检查:翻译 skill 的标题数必须等于
「上游标题数 + 本文件里带标注的增量节数」。标注与内容同处一文件,不会各自漂移。
未标注就多出章节 = 隐性分叉,下次同步会被误当成漏译 —— 直接 FAIL。

已双向验证:给 brainstorming 偷偷加一节会被拦下并给出可操作提示,
加上标注后放行。

## 修掉一个让守卫从未生效的 bug(我自己写的)

3c-bis 第一次测试没拦住。查出原因:`grep -c` 匹配到 0 个时输出 "0" 但
**退出码为 1**,写成 `$(grep -c ... || echo 0)` 会拼出 "0\n0",后续整数比较
直接报错、检查静默失效。改用 `; true` 只吞退出码。

全仓扫同一模式,发现测试辅助里也有 3 处(上游同样有这个 bug):
- tests/claude-code/test-helpers.sh:77 assert_count 的实际值
- test-subagent-driven-development-integration.sh 的 task_count / todo_count

这个 bug 的后果是断言**永远无法正常失败** —— 模式没匹配到时比较报错而非判定失败。
三处一并修掉并加注释说明原因。(tests/ 不进 npm 包,仅开发使用。)

修复后 audit 由 154 升到 166 pass —— 因为 3c-bis 现在真的对 14 个 skill 都跑了。

## README

简繁对比表新增一行「翻译 skill 内的增量」,写明仅 2 处、都带标注、
上游各节不被改动、audit 会强制未标注的增量报错。

验证:audit.sh 166 pass / 0 warn / 0 fail、verify-release.sh 90 pass / 0 fail
2026-08-08 14:26:16 +08:00
AI不止语
5b54fc4b53 chore(release): v1.7.7 —— 新增 Crush(23 款工具)+ 测试覆盖盲区修补
版本号:7 份声明文件 1.7.6 -> 1.7.7。包内文件 107 -> 108(docs/README.crush.md)。

内容见 RELEASE-NOTES.zh.md v1.7.7 条目。

发版前门禁
- audit.sh 152 pass / 0 warn / 0 fail
- verify-release.sh 90 pass / 0 fail(覆盖从 82 项提升)
- dry-run:1.7.7 / 108 文件
2026-08-08 06:15:40 +08:00
AI不止语
8a2f37071a feat(installer): 新增 Crush 适配(23 款工具,#40);补齐 verify-release 覆盖盲区
## Crush(#40)

查权威源(charmbracelet/crush repo 文档)确认:Crush 遵循 Agent Skills 开放标准,
项目级**自动发现** .crush/skills、.agents/skills、.claude/skills、.cursor/skills
四个目录,无需任何配置;用户级为 ~/.config/crush/skills。

重要副作用写进了 docs:已经为 CC / Cursor / Codex / Antigravity 装过的用户,
Crush 现在就已经能读到那些 skills,此时不要再装 --tool crush,否则同一批
skills 会有两份、被重复加载。docs 里给了确认命令。

- TARGETS 加 Crush(detect: .crush / crush.json / .crush.json),支持 --global
- CLI_PROBES 加 crush(它是 CLI,PATH 探得到)
- skills-only 适配,不需要 bootstrap;不动用户的 crush.json
- 新增 docs/README.crush.md
- 计数 22 -> 23(installer TARGETS 22 条 + Copilot CLI 单独计)

实测:装 20 skills / 二次装幂等 / 卸载零残留且正确保留用户的 crush.json;
--global 装到 ~/.config/crush/skills 并可干净卸载。

## audit Category 5 当场抓到我漏改的 5 处

加计数时忘了 site/build.mjs 的 5 个位置(三语言标语 + FAQ 枚举)。上个版本
新加的计数一致性检查直接 FAIL 拦下 —— 这是它第一次在真实改动中生效。已补
site 18 处并重建,三语言首页 23 计数、0 残留、Crush 均已出现。

## verify-release.sh 有同样的漂移问题,已修

它有自己独立的覆盖清单,加新工具时不进去就静默不测(本次 Crush 就是:
分数仍是 82,因为压根没测它)。

- SPEC / DETECT / GLOBAL_OK 三处补 Crush
- 顺带发现 B 段还漏了 3 个工具的检测标记:DeerFlow(deer_flow)、
  VS Code(.github/copilot-instructions.md)、Gemini CLI(GEMINI.md)——
  后两个是文件而非目录,DETECT 循环原先一律 mkdir,现按扩展名区分创建方式
- 新增 G 段自检:SPEC 覆盖数必须等于 installer 宣称的工具数;
  DETECT 覆盖的工具名集合必须包含全部 TARGETS 名字(用集合比对而非数条数 ——
  一个工具可以有多个检测标记,数数会误判)

覆盖从 82 项升到 90 项。

回归:audit.sh 152 pass / 0 warn / 0 fail、verify-release.sh 90 pass / 0 fail
2026-08-08 06:14:48 +08:00
AI不止语
d1ac51e450 chore(release): v1.7.6 —— 上游 v6.2.0 对齐完成,漂移告警清零
版本号:7 份声明文件 1.7.5 -> 1.7.6(只动 "version" 行)。

C 块(说服性段落 -> rationalization 表)收尾,#19 的 A/B/C/D 四块全部完成。
scripts/audit.sh 的上游结构漂移告警从 3 条降到 0 条。

内容见 RELEASE-NOTES.zh.md v1.7.6 条目。要点:盘点先行发现 14 个
refactor commit 里有 3 项是实质改动而非风格瘦身(新增 rationalization 表、
executing-plans 加隔离工作区步骤、using-git-worktrees 规则等价压缩),
其余各项逐条核实规则在别处仍在之后才删。

发版前门禁
- audit.sh 150 pass / 0 warn / 0 fail
- verify-release.sh 82 pass / 0 fail
- 行为 eval 两轮共 11 题全对(专门考被删段落里的规则是否仍生效)
- dry-run:1.7.6 / 107 文件 / 468.6 kB
2026-08-08 00:22:39 +08:00
AI不止语
9022c6fcc0 chore(release): v1.7.5 —— 上游 B + D 块(worktree bug、Gemini 勘误、测试参考重构)
版本号:7 份声明文件 1.7.4 -> 1.7.5(只动 "version" 行)。

内容见 RELEASE-NOTES.zh.md v1.7.5 条目。三项面向用户的实质改动:

1) worktree 清理静默空转(真 bug,已复现验证)
2) 更正「Gemini 不支持子智能体」的错误说法 —— 原说法会让 3 个 skill
   在 Gemini CLI 上瘸腿
3) testing-anti-patterns.md -> writing-good-tests.md:5 个反模式清单
   重构为两条原则 + 变异检查

外加 audit 结构漂移度量修正(此前把围栏内 shell 注释当标题,虚报了 2 条
假阳性漂移;#19 里引用的欠账数字此前是虚高的)。

发版前门禁
- audit.sh 152 pass / 1 warn / 0 fail(唯一 warn 是 using-git-worktrees 真漂移)
- verify-release.sh 82 pass / 0 fail
- 行为 eval 8/8(B 块)
- 包内容核对:writing-good-tests.md 已入包、testing-anti-patterns.md 已移除、
  re-review-prompt.md 在包内
- dry-run:1.7.5 / 107 文件 / 468.1 kB
2026-08-07 23:35:09 +08:00
AI不止语
eadc83b64b chore(release): v1.7.4 —— SDD 同步上游 v6.2.0(附行为 eval 证据)
版本号:7 份声明文件 1.7.3 -> 1.7.4(只动 "version" 行,已 diff 确认)。
包内文件 106 -> 107(新增 re-review-prompt.md)。

内容见 RELEASE-NOTES.zh.md v1.7.4 条目。

按 CLAUDE.md「改 skill 需要 eval 证据」的要求,本次补了两层行为验证 ——
结构性核对不足以证明译文真的传达了新规则:

1) 新机制 7 个场景 eval:7/7 正确
   考察第 2 轮该唤回还是换新、第 4 轮模型档位、第 5 轮能否再开一轮、
   承重发现该搁置还是停下、Minor 走哪条路、遇到别的计划的账本怎么办、
   控制者能否自己修。连「运行环境无法唤回时才改派全新实现者」都答出。

2) 集成 eval:用 tests/subagent-driven-dev/go-fractals 脚手架跑真实
   执行的准备阶段,验证 agent 是否按新签名调脚本(旧习惯可能省掉 PLAN_FILE)
   - 实际调用 sdd-workspace plan.md,带上了 PLAN_FILE
   - 同时检查了 plan 作用域账本和旧扁平路径的游离账本
   - 账本第一行为正确的身份行;工作区落在 .superpowers/sdd/plan/
   - 起飞前冲突扫描产出 5 条打包成一次的提问,而非逐条打断
   - 建 10 条待办并按指令在分派实现者前停下

回归:audit.sh 150 pass / 0 fail、verify-release.sh 82 pass / 0 fail
dry-run:1.7.4 / 107 文件 / 464.0 kB
2026-08-07 22:36:38 +08:00
AI不止语
78457e5bc3 chore(release): v1.7.3 —— 上游纯代码修复同步 + 工具计数一致性检查
版本号:7 份声明文件 1.7.2 -> 1.7.3(只动 "version" 行,未重排 JSON,已 diff 确认)。

内容见 RELEASE-NOTES.zh.md v1.7.3 条目:
- 同步上游 Windows SessionStart hook 分发修复与 find-polluter.sh 三处路径 bug
- audit 新增 Category 5 工具计数一致性检查(+24 项,已验证会拦漂移)
- 修 bash 3.2 下 CJK 报错信息乱码(3 处)
- .gitignore 补新工具安装产物;官网计数 20 -> 22
- 简繁 README 亮点更新至 v1.7.3,补上 Windows 修复一条

发版前门禁
- scripts/audit.sh: 153 pass / 0 fail(3 warn 为上游漂移,见 #19)
- scripts/verify-release.sh: 82 pass / 0 fail
- npm publish --dry-run: 1.7.3 / 106 文件 / 457.6 kB
2026-08-07 21:59:56 +08:00
AI不止语
da6c6b082d chore(release): v1.7.2 —— Cline / Kilo Code 适配 + 检测落空建议 + marketplace 文档
版本号:7 份声明文件全部 1.7.1 -> 1.7.2(按 .version-bump.json 逐一核对一致)。
注:本机没装 jq,scripts/bump-version.sh 跑不了,改用等价的逐字面量替换,
只动 "version" 那一行,未重排任何 JSON(已 diff 确认)。

新增 scripts/verify-release.sh —— 发版前深度验证,82 项断言。
补 audit.sh 的盲区:audit 只看 installer 退出码,装完有没有东西落盘、卸载有没有
留垃圾它都不查。本脚本断言实际结果:
  A. 22 款工具:装 -> 断言 20 个 skill 落盘 -> 二次装幂等 -> 卸载零残留 + 无嵌套
  B. 19 个检测标记逐一验证只触发预期工具(防新增工具误触发既有工具)
  C. --global 7 款成功 / 14 款明确拒绝且退出码 1
  D. --global 拒绝信息引用的 8 份 docs 真实存在(防死链)
  E. rules 型工具索引断言:表 20 行、无空 description、Cline 无 frontmatter
  F. PATH 探测在 PATH 为空 / 畸形 / 未定义三种退化情形下的健壮性

文档
- RELEASE-NOTES.zh.md 加 v1.7.2 条目,含设计取舍与完整验证清单
- 简繁 README 更新亮点:v1.7.0 -> v1.7.2(1.7.1 时漏更新,一并修正)
- marketplace 示例里的 "Version: 1.7.1" 改为「<当前版本>」—— 写死版本号每次
  发版都会过期

发版前验证结果
- scripts/audit.sh: 130 pass / 0 fail(2 warn 为既有上游漂移,见 #19)
- scripts/verify-release.sh: 82 pass / 0 fail
- npm 包端到端:npm pack -> 包内 version 1.7.2 -> 从 tarball 安装 ->
  用打包后的二进制真实跑 Kilo Code 自动检测 -> 20 skills + 索引生成 ->
  卸载零残留
- engines >=20 与实际语法一致(仅用到 padEnd/ES2017,无 ?? 与 ?.)
- 包体 444K / 106 文件,docs/README.cline.md 与 README.kilocode.md 均已入包
2026-08-07 20:00:51 +08:00
AI不止语
6cb1cd89bc feat(installer): 新增 Cline 与 Kilo Code 适配(22 款工具,#112、#88)
两款都是 VS Code 扩展,加载的是「rules」而非懒加载的 skills —— rules 会
并入每一轮 system prompt。所以照搬「把 20 个 SKILL.md 复制进规则目录」会
让每轮对话背着几万字常驻开销(Cline 官方也提示规则超约 300 行后遵守度下降)。

改用仓库既有的 Trae 模式:规则目录里只放一份小索引(核心规则 + 20 个 skill
的名称/触发条件表),skills 本体放各自的 skills/ 目录由 agent 按需读取。

Cline(#112)
- skills -> .cline/skills/,索引 -> .clinerules/superpowers-zh.md
- 不写 YAML frontmatter:Cline 目前只支持 paths 一个条件字段,
  无 frontmatter 即始终生效,正是所需
- 索引保持在 .clinerules/ 根层单文件 —— 子目录是否递归扫描官方未说明

Kilo Code(#88)
- skills -> .kilocode/skills/,索引 -> .kilocode/rules/superpowers-zh.md
- 走 .kilocode/rules/ 而非 v7 推荐的 .kilo/rules/ + kilo.jsonc:后者需要把
  路径登记进用户的 kilo.jsonc,那是带注释的 JSONC,安装器安全合并容易改坏
  用户配置。官方明确 .kilocode/rules/ 向后兼容且零配置生效,故选它。
  docs 里写了想迁到 v7 方式该改哪一行,以及万一没生效怎么反馈。

接入点(全部为新增,未改动任何既有工具的条目)
- TARGETS 加 2 条,检测标记 .clinerules / [.kilocode,.kilo,kilo.jsonc] 均唯一
- installForTarget 分发、TOOL_ALIASES(cline/kilocode/kilo/kilo-code)
- BOOTSTRAP_DELETE 加两份索引路径,--uninstall 能清干净
- --global 明确拒绝并指向 docs:Cline 全局 rules 路径随 OS 变
  (~/Documents/Cline/Rules,Linux/WSL 还有 ~/Cline/Rules 回退),
  Kilo 全局需改 kilo.jsonc,都不是通用 --global 能可靠命中的
- audit.sh TOOLS 数组加 cline kilocode,纳入 install/幂等/卸载回归
- 新增 docs/README.cline.md、docs/README.kilocode.md
- 计数 20 -> 22:简繁 README、package.json、CLAUDE.md、3 份 plugin manifest
  (RELEASE-NOTES 里的历史计数是过往版本记录,不动)

实测
- 两款均通过 装 / 二次装幂等 / 卸载无残留
- 检测隔离:.clinerules 只触发 Cline、.kilocode|.kilo|kilo.jsonc 只触发
  Kilo Code;.claude/.cursor/.trae/.qoder/.codebuddy 检测结果与改动前一致;
  .claude + .clinerules 共存时两款并行安装正常
- audit.sh: 130 pass / 0 fail(2 项 warn 为既有上游漂移,见 #19)

路径依据:docs.cline.bot/customization/cline-rules、kilo.ai/docs/customize/custom-rules

两款合并为一个提交:共用同一套「rules 型工具」机制与同一批计数改动,
拆开会产生 21 款的中间状态,audit 无法在中间提交上自洽通过。
2026-08-07 17:38:37 +08:00
AI不止语
c2e8f6a67e docs(readme): 补充 plugin marketplace 安装方式 (#39)
.claude-plugin/marketplace.json 从 v1.7.x 起就存在且可用,但 README 从未
写过怎么用,用户无从得知 —— issue #39 请求的能力其实已经实现,只是没告知。

简/繁 README 新增「方式二:Plugin Marketplace」,原手动安装与配置文件
引用顺延为方式三 / 方式四。

已实测验证(用隔离的 CLAUDE_CONFIG_DIR,未污染本机配置):
- plugin validate                              → Validation passed
- marketplace add jnMetaCode/superpowers-zh    → 成功(GitHub 直连克隆)
- plugin install superpowers-zh@superpowers-zh → 成功,list 显示 v1.7.1 enabled
- 安装缓存内含全部 20 个 SKILL.md

文档同时说明取舍:marketplace 只服务一款 harness,其余 19 款工具仍需
npx 方式;两者可共存但同一项目内别重复装,否则 skills 会有两份。
2026-08-07 17:25:27 +08:00
AI不止语
687a330dc7 docs(readme): Cubence 福利行补上注册链接,与其他赞助位保持一致
原文案只给了优惠码 AGENCY,没有可点击的注册入口。
现改为「通过此链接注册的用户,首次购买即可享受 9 折优惠」,
与优云智算的 🎁 福利行结构一致。
2026-08-07 16:00:05 +08:00
AI不止语
66fe0c5f31 docs(readme): 新增赞助商 Cubence,赞助位统一为 25%/75% 标准版式
- 新增 assets/sponsors/cubence.jpg(800px 宽,与 compshare.jpg 规格一致)
- 简/繁 README 赞助位从固定 400px 单元格改为 25%/75% 百分比表格,
  logo 用 width="100%" 自适应,文案统一为 Markdown 链接 + 🎁 福利加粗行
- Cubence 邀请链接:https://cubence.com/signup?code=SCW29JP9
2026-08-07 15:54:40 +08:00
AI不止语
a1bb3e6aba docs(readme): 赞助商注册链接 ytag 更新为 superpowers-zh
优云智算注册链接的追踪参数 ytag 从 GPU_YY_YX_git_agency-agents
改为 GPU_YY_YX_git_superpowers-zh,referral_code 及其余不变。
简繁两版 README 同步更新。
2026-07-31 15:52:00 +08:00
AI不止语
12a4dc1f9a README(繁體):新增免費配套課程導流(連結繁體站雙課) 2026-07-23 19:40:40 +08:00
AI不止语
9abe32c1d7 docs(readme): 更新优云智算赞助文案至最终版 (#106)
- 补上赞助商最终文案中的「支持 GLM-5.2」卖点(#105 因暂存区失误合入的是上一版文案)
- 按原文断句改回短句,体验金一句用 <br><br> 单独成段
- 简繁两版同步
2026-07-15 19:39:15 +08:00
AI不止语
7126feff5e docs(readme): 新增赞助商 — 优云智算(UCloud) (#105)
- README.md / README.zh-Hant.md 恢复「❤️ 赞助商」版块(沿用 a65c3ed 的双列表格格式),首位赞助商优云智算
- banner 取自赞助商物料,压至 800×368 / 75KB(原图 1919×884 / 1.2MB),README 显示宽度 380px
- 原顶部「想赞助支持本项目」单行 callout 并入版块标题,避免同屏重复
2026-07-15 19:37:10 +08:00
AI不止语
26d581aa50 docs(readme): 顶部加 v1.7.0 更新亮点 + 工具表补齐至 20 款 (#103)
- README.md / README.zh-Hant.md 顶部新增「v1.7.0 更新亮点」callout(全局安装 / CodeBuddy+CodeArts / 繁体三语),链到 RELEASE-NOTES.zh.md
- 项目规模表的支持工具列表补上 CodeBuddy(腾讯)/ CodeArts(华为云码道),与标题「20 款」及 v1.7.0 一致
2026-07-14 15:38:49 +08:00
AI不止语
fe254ec35f docs: README 多语言支持 + 繁体(README.zh-Hant.md) (#101)
顶部加语言切换栏(简体中文 | 繁體中文 | English 上游),
新增完整繁体 README(353 行、与简体版对齐),台港自然术语
(程式碼/專案/除錯/計畫/全域/檔案/伺服器/相容 等)。

日文不纳入本仓库(仓库定位为「中文增强版」,chinese-* skill 与
中文 skill 正文对日本用户无意义;日文应作独立 superpowers-ja)。

维护说明:简体 README 改动时需同步繁体版。
2026-07-13 22:43:30 +08:00