dsh-superpower:把 obra/superpowers 的 14 個開發技能接入 DeepSeek Harness

前言

用 DeepSeek Harness(DSH)搭編碼 Agent 時,一個常見的麻煩是方法論類能力不好複用:需求澄清、TDD、系統化調試這些內容通常以 SKILL.md 技能文件的形式存在,想用起來得自己寫裝載與註冊邏輯,還要處理注入時機、不同預設的兼容問題。已有的做法往往是把技能文件手動拷進每個項目,再各寫一遍加載代碼。

dsh-superpower 把這件事做成了插件:一條命令安裝後,obra/superpowers 的 14 個技能自動進入 DSH 技能註冊表,配套的會話紀律也會在合適的時機注入。下面介紹它的功能、安裝方式和工作原理。

這是什麼

dsh-superpower(pai535Huang/dsh-superpower)是一個 DSH 插件,定位是「DSH plugin bundle for obra/superpowers skills and development workflows」:把 obra/superpowers(Jesse Vincent 維護的一套面向編碼 Agent 的開發方法論,含 brainstorming、TDD、systematic-debugging、subagent-driven-development 等 14 個 SKILL.md 技能)打包接入 DeepSeek Harness。採用 MIT 許可證,當前版本 0.1.0,要求 Node >= 20。

實現上它是一個 host 組合行(bundle patch 掛載,patch 文件爲 ./cordis.patch.yml):通過 ctx.skills.registerProvider() 把打包技能註冊進 DSH 技能註冊表,並在每個具有 skill 工具的會話開頭注入 using-superpowers 紀律(「1% 規則」)。

核心功能

打包 14 個技能並註冊

14 個 SKILL.md 直接隨包分發,命名空間已改寫(superpowers:<name> → 裸 <name>),上游的平臺適配文件 references/dsh-tools.md 也已併入。註冊由 lib/index.js 完成:它向註冊表掛一個 provider,list() 掃描 skills/ 目錄,get() 按需解析 frontmatter 與正文,返回帶目錄 resource base 的定義。

會話開頭的紀律注入

lib/bootstrap.mjs 掛載 agent/pre-step,按 ctx.tools.get('skill', agent) 的可見性決定是否注入。注入規則有三條:

1、using-superpowers 完整正文只在會話首請求注入一次,compaction 後重注一次,不是每輪 prompt 都注入(與上游 SessionStart 語義一致);
2、子代理(delegationDepth > 0)跳過注入;
3、注入正文即時取自注冊表,references/dsh-tools.md 從技能 resource base 讀取後隨信封注入。

預設兼容性

任何提供了技能加載面的預設都能看到捆綁技能,具體行爲如下:

會話所在的預設 技能可見 會話開頭注入
standard / code / cordis(掛了 tool-skill 是,目錄列出全部捆綁技能 是(首次 + compaction 後)
自定義預設(掛 skill_search / skill_load 替代) 是,按需搜索/加載 否,無 skill 工具自然跳過
minimal 否,無 skill 行

無構建步驟,可直接加自定義技能

skills/ 放入新的 <kebab-name>/SKILL.md 即可,插件運行期自動發現,不需要改任何代碼。技能文件以 YAML frontmatter 開頭,name + description 必填,whenToUse 可選:

---
name: my-review-flow
description: 代碼評審場景觸發,按檢查清單逐項覈對
---

觸發遵循 description 匹配,目錄只展示 name + description。

同名技能就近遮蔽

項目/用戶技能根裏的同名技能會遮蔽捆綁版(bundled provider rank 低於本地技能根)。這是有意設計:用戶意圖優先,想覆蓋某個捆綁技能時,在本地放同名文件即可。

安裝與啓用

官方安裝命令如下,把 <name> 替換爲你的 profile 名:

dsh plugin --profile <name> add github:pai535Huang/dsh-superpower

重啓 profile 後,新會話即可使用。

典型用法

上游驗收用例記錄在 docs/acceptance-test.md:在 standard 預設下輸入 “Let’s make a react todo list”,會話先觸發 brainstorming 技能澄清需求,再進入寫代碼環節。該文檔同時保留了執行記錄與證據清單,可用於自行復驗。

想擴展技能集時,按上面的格式往 skills/ 加一個 SKILL.md,無需改代碼,provider 會自動發現它。

開發與驗證

克隆倉庫後執行:

npm ci
npm run check

npm run check 會依次跑測試和校驗。細分下來:

1、npm test:單元測試,覆蓋 manifest 裝載、註冊、bootstrap 守衛/頻率、遷移清理;
2、npm run validate:skill 集合、frontmatter、manifest 三項一致性校驗;
3、docs/acceptance-test.md:上游驗收用例的執行記錄與證據清單。

devDependencies 只有 js-yaml ^4.1.0,沒有構建步驟,源碼可以直接通讀。

適用場景與注意

適合兩類人:已經在用 DSH、想引入 obra/superpowers 方法論但不想手寫裝載與注入邏輯的開發者;希望技能隨插件分發、同時保留本地同名覆蓋能力的團隊。

安裝前有幾點需要確認:

1、插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。本插件及其技能內容均爲 MIT(技能內容源自 obra/superpowers,Copyright (c) 2025 Jesse Vincent),詳見倉庫根目錄 LICENSE
2、minimal 預設沒有 skill 行,按設計不移入任何技能;如果你的預設沒有提供技能加載面,這些技能不會生效;
3、紀律注入只在會話首請求和 compaction 後發生,如果期望每輪 prompt 都強制攜帶,需要另做處理。

結尾

dsh-superpower 解決的是一個具體問題:把一套成熟的開發方法論技能接進 DSH,免掉裝載、註冊、注入時機的重複勞動,同時不犧牲本地覆蓋和自定義擴展的空間。

  • GitHub 倉庫:https://github.com/pai535Huang/dsh-superpower
  • 社區目錄頁(第三方站點,與 DeepSeek / 幻方無官方從屬關係):https://www.skillhub.cn/plugins/pai535Huang/dsh-superpower
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜