v1.7.12 (2026-09-07)
通过 Claude Code 插件市场安装的用户请更新。 本版修的是一个「装了,但技能之间互相调不动」的问题, 并新增三款工具支持:ZCode(智谱)、DeepSeek Harness 与 Reasonix,工具数 23 → 26。
🐛 插件模式下跨技能调用全部失败(#116 之外最实的一条:#124)
报告人给的证据完整到可以直接复现(v1.7.10 / 插件市场安装 / Windows):
Skill("superpowers:systematic-debugging") -> Unknown skill
Skill("superpowers-zh:systematic-debugging") -> 正常加载
Claude Code 按「<插件名>:<技能名>」注册插件技能,而本插件在 .claude-plugin/plugin.json 里叫 superpowers-zh。可我们的 skill 正文里照抄了上游的 superpowers: 前缀 —— 实测全仓 superpowers-zh: 0 处、superpowers: 32 处, 分布在 11 个文件。凡是 skill A 让你去用 skill B 的地方,插件用户都会撞上 Unknown skill。
但没有按报告里建议的换成 superpowers-zh:。 本 fork 有两条分发路径,命名空间不同:
| 分发方式 | 技能怎么调 |
|---|---|
| 插件市场 | superpowers-zh:<name> |
npx superpowers-zh → .claude/skills/ | 裸名(项目级技能) |
证据是安装器自己生成的 bootstrap —— 它列的就是裸名。也就是说那 32 处在两种模式下 都是错的;只改成 superpowers-zh: 等于修好插件模式、又给主分发路径挖一个反向的坑。
改成裸技能名:npx 模式直接正确;插件模式下模型按后缀匹配得到 superpowers-zh:xxx,而不是照着一个确定不存在的全限定名去调。
另有 1 处特例:copilot-tools.md 里那句是举例说明「插件智能体」的命名形式,且 code-reviewer 在本 fork 根本不是技能,改成通用写法 <插件名>:<智能体名>。
🐛 Crush 在 Windows 上装到了它不扫描的目录
Crush README 的 Agent Skills 一节写明 Windows 走 %LOCALAPPDATA%\crush\skills\(它给 Windows 用户的上手命令就是 mkdir "$env:LOCALAPPDATA\crush\skills"),而我们两个平台都装 ~/.config/crush/skills。
而我们自己的 docs/README.crush.md 早就写对了 —— 又一次「文档描述的是意图, 代码做的是另一回事」,与 v1.7.10 修 Aider 时同一句话。
global 支持可选的 dirWin,按平台选路。OpenCode 的 .config/ 没动:其官方文档 没有任何 Windows 专属说明,没证据就不猜路径。
🐛 render-graphs.js:取上游的两处修复,但不跟它改 ESM
上游 v6.3.0 改了三处,我们只取两处:
| 上游改动 | 我们 | 理由 |
|---|---|---|
execSync('dot -Tsvg') → execFileSync('dot', [...]) | ✅ | 安全加固,不过 shell |
execSync('which dot') → execFileSync('dot', ['-V']) | ✅ | Windows 修复 —— which 在 Windows 上不是命令 |
| CommonJS → ESM | ❌ | 这脚本会被拷进用户项目执行,Node 判定模块类型看用户项目的 package.json。Node 22.7+ 有 ESM 自动探测所以看不出问题,但本仓 engines 是 node>=20,Node 20 无探测,在普通 CommonJS 项目里直接加载失败 |
实测(--no-experimental-detect-command 模拟 Node 20):上游版报 To load an ES module, set "type": "module" + SyntaxError,我们改后版本正常执行。
🔄 对齐上游 v6.3.0:13 个镜像文件、+415 / -44 行正文
旧门禁对已翻译的文件只比「标题数」—— 标题不变,正文改多少行都看不见。上游 v6.3.0 给 skill 正文加了 415 行,我们这边一声不吭。这一版补了基线文件 .upstream-sync.json 之后,第一次量出了这个缺口,并分四批补完:
| 文件 | 上游改动 | 这次同步了什么 |
|---|---|---|
brainstorming/SKILL.md | +108 / -9 | 重译到 v6.3.0:Three Paths 结构、危险信号表、每条路径各自的检查清单 |
using-superpowers/references/codex-tools.md | +70 / -1 | 我们原来只有 2 节 25 行,上游是 5 节;顺带修掉 close_agent 在 V1/V2 里的错误行 |
using-superpowers/references/hermes-tools.md | +56 | 换成上游的 6 节版本,只保留一条声明过的 fork 注记 |
finishing-a-development-branch/SKILL.md | +24 | 工作树删除被拒时的处理:绝不自作主张 --force |
implementer-prompt.md / re-review-prompt.md / code-reviewer.md | +30 | 三份子智能体提示词统一加上「你不派发子智能体」契约 |
subagent-driven-development/SKILL.md | +89 / -24 | 控制者从「遇事问人」改成「自行裁决 + 记账」(见下) |
task-reviewer-prompt.md | +22 | 审查者不派子智能体;证据读不到 ≠ 证据不存在;打包分派要逐文件对 diff |
writing-plans/SKILL.md / using-superpowers/SKILL.md / visual-companion.md | +9 / -4 | 计划模板新增 Spec 字段;Hermes 工具参考入口;Copilot CLI 后台启动说明 |
其中 SDD 那条是行为塑造上最实的一处改动。旧版本里,控制者一遇到「审查发现」与 「计划原文」冲突就停下来问人类伙伴;v6.3.0 改成由控制者自己裁决,每条裁决以 Ruling: <决定> — <为什么> — <错了的代价> 记进账本,收尾时汇总成「我作出的裁决」 交回来。只留四类硬停止:不可逆或破坏性操作、涉及安全的动作、工作树之外按惯例 该先问一声的副作用(合并 / 推送共享分支 / 发布)、以及坏到每条路都只能靠猜的计划。 理由是上游写在正文里的一句话:一个错误的裁决,代价是看得见也撤得掉的返工; 一个停在问题上的会话,代价是一整天,而且什么也换不来。
配套的流程图节点也跟着改了(「询问人类伙伴以哪个为准」→「对冲突作出裁决,把裁决 记进账本」),预检扫描的产出从一句结论改成一张必须逐行填的表。
唯一有意不同步的是 writing-skills/render-graphs.js 的 CJS → ESM,理由见上一节。 这条分歧写进了 .upstream-sync.json 的 evidence 字段,免得下次同步时被当成遗漏又"修"一遍。
🆕 新增 ZCode(智谱)支持 —— 只做全局,因为项目级路径官方从未公开(#95 #120)
npx superpowers-zh --global --tool zcode # -> ~/.zcode/skills/#120 附了一份完整补丁,写着装到 .zcode/skills + 写 .zcode/AGENTS.md。没有采纳 —— 提交者自己写明那是「让 AI 按 zcode 的目录结构适配」生成的,而官方文档里查无此路径。
ZCode 官方技能文档(中英文版一致)只给出一个磁盘路径: