obra/superpowers 的 DSH 完整移植:通过原生 SkillProvider(rank 550)注入 14 个方法论技能,覆盖需求澄清、计划拆解、TDD、系统化调试、并行分发等,文档全中文化,开箱即用、零构建安装。
安装
# npm 包(预构建)
dsh plugin --profile web add @wenaixi/dsh-superpower
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Wenaixi/dsh-superpower
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
obra/superpowers 的 DSH 移植版。15 个技能注入 ctx.skills,装上就能用,正文全中文。
安装
需要 Node 20 以上、pnpm 11 以上,以及 dsh 本体(npm i -g @deepseek-ai/dsh)。下面以 web profile 为例,换个 profile 名字即可。
# A — npm(推荐,自动装最新)
dsh plugin --profile web add @wenaixi/dsh-superpower
# B — GitHub 直装(绕过镜像延迟)
dsh plugin --profile web add github:Wenaixi/dsh-superpower
# 验证
dsh --profile web --dump-config | grep -A2 "@wenaixi/dsh-superpower"
# # == @wenaixi/dsh-superpower / - id: superpowers
dsh --profile web # 进会话,技能自动可用
要锁版本就在包名后加 @<version>(@wenaixi/dsh-superpower@7.2.0)或 #v7.2.0。
旧包名 dsh-superpower(不带 scope)已经废弃并 npm deprecate,请换成带 scope 的。
本地开发或离线安装:
git clone https://github.com/Wenaixi/dsh-superpower && cd dsh-superpower
pnpm install && pnpm build && node scripts/verify.mjs # 15/15 PASS
dsh plugin --profile web add ./ # 本地路径安装
pnpm pack && dsh plugin --profile web add ./wenaixi-dsh-superpower-*.tgz
# 更新 / 卸载
dsh plugin --profile web add @wenaixi/dsh-superpower
dsh plugin --profile web remove @wenaixi/dsh-superpower
是什么
一套强制的工程方法论,模型不按顺序走就会做错:先设计,再把计划切成可校验的小步,然后测试驱动,调试时先找根因,收尾前必须跑验证命令。装在 dsh.bundle 里,不往用户目录里写东西,卸载干净,HMR 会自动重建。
包含技能
| 技能 | 什么时候用 |
|---|---|
using-superpowers |
每次会话开头,先查有没有该用的技能 |
brainstorming |
新功能动手前,把需求和设计问清楚 |
writing-plans |
设计定了,拆成一项一项能验证的任务 |
using-git-worktrees |
需要和当前工作区隔离 |
executing-plans |
在当前会话里亲自把计划跑完 |
subagent-driven-development |
计划里有多件独立的事,交给 subagent 分头做 |
dispatching-parallel-agents |
两件以上互不依赖的事并行分发 |
test-driven-development |
先写测试再写实现 |
systematic-debugging |
出了 bug,先定位根因再改 |
verification-before-completion |
说「完成」之前必须跑验证命令 |
requesting-code-review |
任务做完、发 PR 前求评审 |
receiving-code-review |
收到评审意见,先技术核实再改 |
diagnosing-superpowers |
会话出问题或成本异常时定位原因 |
finishing-a-development-branch |
决定合并、发 PR 还是留着分支 |
writing-skills |
新建或改技能 |
工具映射(Bash 到 pwsh、Read/Write 到 fs 等)在 skills/using-superpowers/references/dsh-tools.md。
同名技能谁生效
官方注册表在同层重名时按 rank 从小到大裁决。本包 rank 是 10,比 dsh-skill-filesystem 的项目级和用户级(100–500)以及官方内置 bundled(600)都小,所以只要有同名技能,本包这份生效,不会有两套规则打架。
技能开关
插件管理页里点开 @wenaixi/dsh-superpower 卡片,详情页底部就是开关面板。每个技能一个开关,关掉即两侧同时不可见:
- 模型不再在可用技能目录里看到它,
skill工具调用也会被拒; - 你也没法再从斜杠命令补全或命令行技能清单里调它。
面板上方还有全部开启、全部关闭、恢复默认三个批量操作和一个搜索框。页头标着本包的 provider、rank、source,排查同名覆盖时用得上。
- 拨动后立即生效,模型的下一轮对话就能看到新目录;当前这一轮不受影响。
- 状态写在 profile 的
cordis.patch.yml的disabled字段里,跟着 profile 一起备份迁移,重装插件不丢。 - 只影响本包这 15 个技能,不碰官方和第三方插件提供的技能。
- 语言切换:面板顶部(说明文案之下)一个「中文 / English」按钮,一次切换全部 15 个技能的名称与描述显示语言(英文
description与中文description_zh)。正文一律为英文原版。两种描述分别以Superpower Skill:/Superpower Skill:开头。未在面板调过语言时,描述跟随宿主界面语言(设置里选的语言);调过后固定为该语言。 - 面板 UI 文案(标题、按钮、提示、meta 标签)跟随宿主界面语言(设置里切换语言即生效)。
7.3.0 及更早版本用过两个开关(模型可调用 / 用户可调用),对应 modelDisabled 与 userDisabled 两张表。这两个字段已废弃:升级后旧值继续生效,你第一次拨动开关时它们会被清空,配置收敛到 disabled 一张表。
使用
「帮我做 XXX」 → brainstorming → writing-plans → subagent-driven-development
「修这个缺陷」 → systematic-debugging
「帮我评审」 → requesting-code-review
「刚才会话出问题了」 → diagnosing-superpowers
校验:await ctx.skills.list({cwd}) 应该返回 15 条 provider: superpowers。
开发
pnpm install && pnpm build && pnpm typecheck && node scripts/verify.mjs
# 同名优先实测一:自研桩对照,无外部依赖,任何环境可跑
node scripts/check-same-name-priority.mjs
# 同名优先实测二:加载官方 @deepseek-ai/dsh-skill-filesystem 做同层实测
# 该包不在 profile 的直接依赖里,脚本会依次尝试 profile 入口、pnpm store
# 内 .pnpm 真实目录、全局 dsh 本体三处候选路径。
# 本机没装 dsh(比如纯 CI)就用上面的自研桩脚本做等价验证。
node scripts/check-same-name-priority-fs.mjs
# 技能开关端到端实测:真实 SkillRegistry 上验证默认全开、禁言生效、热失效闭环
node scripts/check-skill-switches.mjs
# 上游同步全量复核(deep + tokens 双绿)
node scripts/review-sync.mjs
dsh --profile web --dump-config # 断言 "# == @wenaixi/dsh-superpower"
浏览器端验证
可选,需要本机装好 dsh 和 Python 的 playwright。两个脚本只做验证,地址和路径都从命令行传:
| 脚本 | 验什么 |
|---|---|
scripts/browser/verify-switch-ui.py |
真机 Web UI 里点开插件卡片,逐个拨开关、点批量按钮、搜索过滤,再回读 cordis.patch.yml 确认落盘 |
scripts/browser/verify-model-perception.py |
四阶段闭环:UI 写完用宿主真实 SkillRegistry 复核两侧可见性,并逐行比对 UI 显示与宿主目录 |
# 1. 起一个装了本插件的 profile 的 Web 服务,记下启动日志里的 token
dsh --profile <profile> --no-open --port 3199
# 2. 面板全量操作
python scripts/browser/verify-switch-ui.py \
http://127.0.0.1:3199 <token> .verify-shots <profile>/cordis.patch.yml .verify-shots/expected.json
# 3. UI 与宿主的四阶段闭环
python scripts/browser/verify-model-perception.py \
http://127.0.0.1:3199 <token> <profile 目录> <profile>/cordis.patch.yml .verify-shots
expected.json 是 15 个技能名的数组,用来断言 UI 行序和 skills/ 目录一致:
node -e "import('./lib/superpowers.js').then(async m=>{const c=await m.SkillCatalog.fromDirectory('skills');require('fs').writeFileSync('expected.json',JSON.stringify(c.verifyIntegrity().entries.map(e=>e.document.name)))})"
截图落在 .verify-shots/,已在 .gitignore 里。
目录
src/superpowers.ts # 插件入口,SkillProvider rank 10
src/catalog.ts # SkillCatalog:技能编目、三键聚合指纹探测、快照复用、规范自检
src/document.ts # SkillDocument:frontmatter 解析、契约转换、内建 selfTest
src/switches.ts # 技能开关:禁言表解包与 invocation 覆盖,内建 selfTest
src/client.js # 浏览器半侧:插件卡片详情页的单开关面板,手写 CJS factory
skills/ # 15 个技能正文与资源
lib/ # 已提交的构建产物,GitHub 直装免构建
locale/ # 插件卡片的标题与描述(中英);面板 UI 经官方 locale 注册表双语切换
icon.png # 插件卡片、README 顶部、GitHub 头像共用
scripts/ # 门禁、同名裁决实测、开关实测、上游同步复核、浏览器验证
scripts/build-client.mjs # 复制客户端产物后校验内联清单与 skills/ 目录一致
版本沿革
v7.0.0 起技能名回归上游命名(去掉 superpower- 前缀)并整批同步上游 obra/superpowers v6.4.2;插件变成 DSH 专属,移除了 Claude Code、Codex、Gemini CLI 等其它宿主的兼容层。npm 上的 7.0.0 发布在专属化改造之前,已废弃。
v7.1.0 提炼 SkillCatalog 与 SkillDocument 两个深度模块,把边界自检下沉进模块自身。
v7.1.1 修复官方 filesystem 同名实测脚本在 pnpm isolated 布局下定位不到 @deepseek-ai/dsh-skill-filesystem 的问题。
v7.2.0 加入技能开关面板,插件升级为双面形态(宿主侧注册技能,浏览器侧渲染开关面板),并补上图标与插件卡片元数据。
v7.3.0 技能快照失效判据升级为三键聚合指纹(目录 mtime + 根级目录名集合 + 各 SKILL.md mtime),消除内容编辑与增量新建两类失明窗口;技能总数魔法数收敛为导出常量;裸调用守卫正则按真实数据域修正并补全自检盲区;客户端清单比对改按技能名建 Map。
v7.2.1 固化面板语言边界:技能内容(名称与描述)固定中文不做技能级翻译;面板 UI 文案(标题、按钮、提示、meta 标签)全部并入 zh/en 词典、经官方 locale 注册表随宿主界面语言切换。底部 provider/rank/source 三个标注不再硬编码英文。
v7.4.0 每个技能从两个开关合并为一个,配置收敛到单张 disabled 表;brainstorming 的可视化协作改用 DSH 官方文档预览,不再随包附带 HTTP 服务脚本。
v7.5.0 每个技能新增英文正文(SKILL.en.md,取自上游原版并做 DSH 专属化),与中文 SKILL.md 并存;面板每行新增「中文 / English」切换,英文描述一律以 Superpower Skill: 开头;同一语言偏好同时决定模型侧目录描述与加载正文;README.md 改为默认英文并新增中文版 README.zh.md。
v7.5.8 彻底消除语言栏静默失败(增加 spSwLangFailure 红色报错显式渲染,底层写入失败不再吞掉报错),强化热更新防御。
v7.5.7 修复面板版本号显示并为语言按钮增加可见作用域说明。
v7.5.6 语言按钮只控制技能描述(Superpower Skill: 后面的文本)与按钮自身文案;面板其余 UI 恢复跟随宿主界面语言,技能正文恒为英文原版。,不再跟随宿主界面语言。
v7.5.4 改版重发(7.5.3 发布遇 npm staged-publish 冲突,代码内容与 7.5.3 相同)。
v7.5.3 修复语言按钮显示:按钮按生效语言(未调过时取宿主语言)显示目标语言,未调过时正确显示 English、点击真正切换。
v7.5.2 语言切换按钮上移到面板顶部、全局一个;未调过时描述跟随宿主界面语言,调过后固定。
v7.5.1 技能正文统一为上游英文原版(单份 SKILL.md,DSH 专属化),中文描述移入 frontmatter description_zh,面板语言切换只改变模型看到的描述、正文恒英文。中文 / English 切换、Superpower Skill: 前缀与双语 README 保持不变。
v7.4.1 修复开关保存失败:dsh-settings 的写入闸门逐条校验 op.path 是否落在 volatile 节点下,两个旧字段去掉 .volatile() 会让整批 mutate 被拒,恢复标注即可;面板页头补「面板版本」标注。
完整变更见 CHANGELOG.md。
常见问题
装完 404 或者版本不对? 换 GitHub 形式安装,或者加 --registry https://registry.npmjs.org 走官方源。不需要配置白名单。查最新版本用 npm view @wenaixi/dsh-superpower --registry https://registry.npmjs.org。
卡片标题、描述或图标是空的? 根因通常是 package.json 的 exports 没放行 ./package.json 和 ./locale/*.json,或者 icon 指向了包外的绝对路径。node scripts/verify.mjs 会把这两类问题连同 files 是否放行图标一起断言掉。
协议
MIT,与上游 obra/superpowers 一致。详见 LICENSE。
贡献
Issue 和 PR 都欢迎。详见 CONTRIBUTING.md。
致谢
- 上游作者 Jesse Vincent 与 Prime Radiant
- DeepSeek Harness 的三角色插件架构
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-skill-explorer★ 8440
技能中心:按来源分级浏览已加载的全部 skill,启用/禁用模型调用、创建新技能、删除进可恢复回收站。
GanyuanRan/Aegis★ 1323
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。
superdesigndev/superdesign-skill★ 628
在 Superdesign 画布上做 UI 与营销图的设计技能:先读代码库拿上下文、抽取现有设计系统,再通过 Superdesign CLI 生成并迭代可分支的设计稿、流程页与可复用组件。
linhay/harmony-next.skills★ 360
为 DeepSeek Harness 提供 HarmonyOS NEXT 技能包、离线 API 参考及 DevEco、HDC 与模拟器自动化指南。
dhicoc/dsh-reverse-skill★ 213
完整 reverse-skill(85 个 SKILL.md)的 DeepSeek Harness 插件:逆向工程、授权渗透测试与安全研究的技能路由包。
sandbaseai/sandbase-skills★ 201
通过文件系统 Skill provider 将 88 个研究、社交情报、营销与商业 Agent Skills 挂载到 dsh。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。