pai535Huang/dsh-superpower ↗★ 0
dsh-superpower
DeepSeek Harness preset adapter for obra/superpowers
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:pai535Huang/dsh-superpower说明文档
阅读完整 README ↗工作原理(与「精确的技能使用检测」)
Superpowers 的技能不会自己触发——上游靠 SessionStart hook 把 using-superpowers 技能内容注入到会话开头,让模型在动手前先检查是否有匹配技能。这个仓库用 superpowers-bootstrap.mjs 复刻了这一步:
- 会话启动注入(复刻上游 SessionStart hook):每个顶层会话的第一个请求里,注入
包裹的 `using-superpowers` 完整内容(compaction 之后再注入一次),正文按上游原文要求「在回答/动手前先调用相关技能,包括澄清问题、探索代码库之前」。bootstrap 正文从技能注册表实时读取并复用 DSH 的渲染,因此注入内容始终与using-superpowers/SKILL.md一致。 - 强制技能使用(上游「1% 就调用」规则):逐字保留上游逻辑——「只要 1% 可能相关就必须调用;技能适用就必须用,没有商量余地」,以及 Red Flags 理性化清单和「process 技能优先」的优先级。加载后若发现不适用再放下,而不是跳过检查。
- 按 description 路由:每个技能 frontmatter 的
description就是触发条件(例如brainstorming只在「写代码前」、systematic-debugging只在「遇到 bug 前」)。目录只展示 name + description,模型据此路由。 - 子代理跳过:
delegationDepth > 0的子代理不注入 bootstrap(正文里也保留 `` 兜底),避免每个被派发的子代理都重新跑一遍完整流程。
技能加载方式
与 Claude Code 的 superpowers: 命名空间不同,DSH 用裸 kebab-case 名称寻址技能(skill 工具 + 目录里的 name)。build.mjs 会把技能正文里的 superpowers: 交叉引用改写为裸 ``,使这些引用在 DSH 里仍然可以直接加载。资源(references/、scripts/、assets/、code-reviewer.md 等)按原目录结构保留,DSH 的 resourceBase(技能目录)会正确解析相对路径。
与上游的差异
- 技能正文、frontmatter 的
name/description逐字保留;只做命名空间改写。 - 不保留 Claude Code / Cursor / Codex 等专属 hook 与 marketplace 清单,只适配 DSH 的
skill-filesystem+tool-skill机制。 using-superpowers里的平台参考文件保留在skills/using-superpowers/references/下,DSH 走标准skill工具 + subagent 工具,无需额外平台映射。- 仅有的内容改动是
superpowers:→ `` 命名空间改写(DSH 用裸名寻址);技能 frontmatter 与正文的「1% 就调用」「技能适用就必须用」等行为规则全部逐字保留。