dsh-skill-starter
Manifest valid★ 1Skill manager for DSH with a pack system. Installs skills as versioned packs and never overwrites files you have edited - upgrades skip your changes and report them. Also ships 6 built-in skills, a pr
dsh-skill-starter
装完就有 6 个能直接用的技能,外加一个 20 个技能的工程流程包。 设置页里能看能改,AI 也能在对话里直接读写技能库。
| 装完立刻得到 | 是什么 |
|---|---|
| 6 个基础技能 | ask-first 需求没说清时先问完再动手、prove-it 改之前先说清怎么验证、write-my-skill 一句话把你的做法记成技能 |
| 20 个工程流程技能 | 从拷问需求 → 收规格 → 拆票 → 实现 → 双轴审查 → 复盘,一整套;外加诊断 bug、TDD、原型、研究、教学 |
| 按症状分组的面板 | 按「你遇到的问题」分组,不用记技能名;能编辑、新建、复制内置技能 |
| 一张「我该用哪个」对照表 | 29 行处境对照,点一行跳到对应技能 |
| AI 在对话里直接读写 | 你说「把这套流程记下来」,它直接落盘,不会写错格式 |
升级技能包不会覆盖你改过的文件。 装进来之后那份归你——插件只加新技能、修错字,不碰你动过的任何一行。
技能(skill)是 DSH 里最实用的东西:把一套做法写成一个文件,之后随时调用,AI 每次都按同一套流程做事。麻烦的地方在于管——文件散在几个目录、frontmatter 写法要记、装了一堆想不起用哪个、改过的还怕被升级冲掉。
这个插件把这几件事一起解决了。
安装
dsh plugin --profile desktop add dsh-skill-starter
desktop 换成你自己的 profile 名(~/.dsh/profiles/ 下面的目录名)。装完重启 dsh。
包在 npm 上:https://www.npmjs.com/package/dsh-skill-starter。
验证:设置页里出现「Skill 管理」这一项,或者直接问 AI「我有哪些技能」。
装不下来时改用源码包
网络或镜像有问题时,改用 GitHub 上的固定 tag 地址:
dsh plugin --profile desktop add https://github.com/ymck-x/dsh-skill-starter/archive/refs/tags/v0.3.0.tar.gz
请照抄这个完整地址,不要改成
refs/heads/main.tar.gz。 分支地址的内容会随作者推代码而改变,而 pnpm 会记下你安装当时的指纹。 之后你装任何插件时,pnpm 都会重新核对全部旧依赖,一旦发现指纹对不上就中止整次安装 (ERR_PNPM_TARBALL_INTEGRITY),而且报错指向一个你当时根本没在装的包。refs/tags/指向一次固定发布,内容永不改变——代价是换版本时要手改上面那个 tag 号。
也不要写成 github:ymck-x/dsh-skill-starter 这种简写:它会被 pnpm 解析成 SSH 地址(git+ssh://),而匿名 SSH 访问 GitHub 会被直接拒绝,装不上。
没有 dsh 命令时手动装
dsh plugin add 内部就是「pnpm 装包 + 把包名写进 dsh.profile.bundles」。你也可以自己做这两步:
cd ~/.dsh/profiles/desktop
pnpm add dsh-skill-starter
从 npm 装不下来时,把 dsh-skill-starter 换成上面那个 GitHub tag 地址。
再把 dsh-skill-starter 加进同一个目录里 package.json 的 dsh.profile.bundles:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-skill-starter"
]
}
}
}
重启 dsh 即生效。
卸载
dsh plugin --profile desktop remove dsh-skill-starter
手动装的:从 bundles 里删掉这一项,再 pnpm remove dsh-skill-starter。
卸载不影响你写的技能——它们在 ~\.dsh\skills\ 里,不属于插件。
它做什么
一、设置页里的面板
打开「设置 → Skill 管理」,你看到的是按你遇到的问题分的组,不是按名字排的字母序:
开工之前
先把票据和规格放在哪定下来。
setup-tickets
别让它做错方向
动手之前,把没问清的问完。
ask-first
看不懂就拉回来
说「没看懂」时,用大白话重讲上一段。
plain-words
别让「改好了」是空话
先说清用什么办法验证,改完真的跑一遍再报告。
prove-it
一次只走一小步,每步验证过再继续。
tiny-steps
让它记住你的做法
一句话把你的做法记成技能文件。
write-my-skill
选一条就能改:名称、描述、使用时机、正文,还有两个调用开关。也能新建、删除、把内置技能复制一份出来改。中英双语,跟着界面语言走。
二、「我该用哪个」
面板里有一块处境对照表,直接显示路由技能里那张表——现在 29 行,点一行就跳到对应的技能。
这张表不是复制过来的:插件每次从 skills-map/SKILL.md 现读现解析,所以它和路由技能永远是同一份内容,不会两边说法不一致。
三、技能包
技能包是「一组相关技能,一次装完」。自带一个:
| 包 | 内容 |
|---|---|
engineering-zh | 20 个中文工程流程技能:拷问需求 → 收成规格 → 拆票 → 实现 → 双轴审查 → 复盘,外加诊断 bug、TDD、原型、研究、教学、交接 |
升级不覆盖你的修改,三层保护:
| 情况 | 处理 |
|---|---|
| 你改过这个文件 | 跳过,并在结果里点名 |
| 文件已存在且内容不同 | 绝不覆盖,单独列出 |
| 内容相同 | 只登记指纹,不动文件 |
所以想改包里的技能,直接改用户目录里那份就行,不用担心下次升级被冲掉。
四、模型能直接用
插件注册六个工具,AI 在对话里就能读写技能库、装卸技能包,不用你打开设置页:
| 工具 | 作用 |
|---|---|
skill_list | 列出全部技能:来源、调用方式、是否被覆盖、附件数 |
skill_read | 读出完整内容与附件清单 |
skill_write | 新建或修改 |
skill_delete | 删除 |
skill_pack_list | 技能包状态 |
skill_pack_install | 安装或升级,不覆盖你的改动 |
所以你说「把这套流程记下来」,它会直接落盘,不会写错格式。
为什么这么设计
问题一:技能写完了没人用
技能要生效,得有人知道它什么时候该上场。三种做法叠起来解决:
- 描述里写用户的原话。
tdd的描述是「说『写个测试再实现』『先红后绿』时使用」——AI 靠这句判断该不该自己调用。 - 面板按症状分组。用户先看到症状(「别让『改好了』是空话」),再看到药。
- 只给人用的技能明确标出来。会改变工作状态的动作(收规格、拆票、交接、复盘)只允许你手动发起,AI 不能自己决定。
问题二:装了一堆,不知道什么时候用哪个
二十多个技能,靠记名字不现实。所以有一张按处境写的对照表:
| 你现在的处境 | 加载哪个技能 |
|---|---|
| 有个想法,要把它问清楚 | grilling |
| 需求没说清,要先把该问的一次问完 | ask-first |
| 要在一个项目里建好票据约定 | setup-tickets |
| 要把已经聊清楚的结论写成规格 | to-spec |
| 要把规格拆成多张票据 | to-tickets |
| 做完了,不知道改动有没有问题 | code-review |
| 没坏,但比以前慢很多 | diagnosing-bugs |
| 这段代码改一次要动好几个地方 | improve-codebase-architecture |
| 不确定这个模块该怎么切 | codebase-design |
| 同一个词团队里有两个意思 | domain-modeling |
| 答案在别人脑子里 | to-questionnaire |
| 没听懂上一条 | wait-what |
完整 29 行在面板里,也在 skills-map 技能里。
问题三:技能越多,每轮对话越贵
技能的描述是常驻的——不管用不用,它都在每轮请求里占位置。所以插件把这个成本算清楚并公布:
| 部分 | 规模 | 估算 |
|---|---|---|
| 插件自带 6 个技能 | 448 字 | 约 269 到 538 token |
| 技能包 20 个技能(装了才有) | 1776 字 | 约 1066 到 2131 token |
| 六个工具的 schema | 671 字 | 约 403 到 805 token |
| 设置面板 | — | 0(只在浏览器里跑) |
| 合计(装了技能包) | 2895 字 | 约 1737 到 3474 token |
不想要工具那部分开销,可以在配置里关掉:
- id: dsh-skill-starter
config:
enableTools: false
关掉之后模型侧开销归零,设置面板照常。「我该用哪个」那块表也照常——它走面板自己的接口,不进模型上下文。
自己量一遍:
node measure.mjs
问题四:升级把改动覆盖了
上面那三层保护就是答案。设计上是这么想的:技能包给的是起点,不是终点。装进来之后那份文件归你,插件只负责以后添新技能、修错别字,不碰你动过的任何一行。
技能清单
技能分两类,区别在谁能调用:
- 模型可调用:任务合适时 AI 会自己用;你也能打
/名字手动调。 - 只允许人工发起:只有你打出
/名字才生效。它们会改变工作状态,不该由 AI 自己决定什么时候做。
插件自带(6 个基础技能)
| 技能 | 什么时候用 |
|---|---|
ask-first | 用户提出还没说清的需求(「加个导出功能」) |
plain-words | 用户说「没看懂」「说人话」 |
prove-it | 任何改动开始前,先说清怎么验证 |
tiny-steps | 改动涉及多个文件,或用户说「一步步来」 |
write-my-skill | 用户说「把这条记下来」「以后都这样做」 |
setup-tickets | 要给一个项目建票据约定 |
技能包 engineering-zh(20 个)
只允许人工发起(9 个)
| 技能 | 作用 |
|---|---|
to-spec | 把已经聊定的结论收成一份规格 |
to-tickets | 拆成一组能各自收工的票据 |
implement | 按票据逐张做出来 |
retro | 回看这段会话,改进工作环境 |
handoff | 压成交接文档,换人换机器接着干 |
to-questionnaire | 答案在别人手里时,写一份问卷去问 |
wait-what | 没听懂上一条,用大白话重讲 |
teach | 跨多次会话学一门东西 |
improve-codebase-architecture | 扫出结构改进机会,给候选让你挑 |
模型可调用(11 个)
| 技能 | 作用 |
|---|---|
grilling | 把还没想清的想法问到没有含糊 |
skills-map | 路由表:从处境查到该用哪个 |
tdd | 测试先行的红-绿循环 |
diagnosing-bugs | 疑难 bug 的诊断纪律 |
code-review | 双轴审查:规范轴 + 规格轴 |
codebase-design | 深模块的词汇与判断标准 |
domain-modeling | 维护项目术语表与架构决策记录 |
pr | 拉取请求正文的三段结构 |
prototype | 写一次性代码回答设计问题 |
research | 查一手来源,留一份带引用的笔记 |
writing-for-agents | 写给模型读的文档时的规范 |
技能包里的正文保持一屏内;词汇表、判断标准、例证这类细节放在同目录的附件里,正文末尾有一行指针。tdd 带 MOCKING.md,code-review 带 SMELLS.md,codebase-design 带 DEEP-MODULES.md,一共 10 份附件。
技能的三种来源
| 来源 | 位置 | 说明 |
|---|---|---|
| 项目级 | <项目>\.dsh\skills\、<项目>\.agents\skills\ | 跟着仓库走,DSH 原生扫描 |
| 用户级 | ~\.dsh\skills\ | 面板和工具都管这里 |
| 内置 | 插件自带的 skills\ | 只读;在用户目录放一份同名的就能覆盖 |
同名时优先级:项目级 > 用户级 > 内置。 项目根按「最近的含 .git 的目录」判定,所以在子目录里也能找到。
面板只列用户级和内置(浏览器端拿不到会话的工作目录);项目级技能在对话里问 AI 就能看到。
和同类插件的关系
DSH 生态里已经有两个做技能的插件,侧重和我们不同:
| 插件 | 侧重 |
|---|---|
dsh-skills | 把散落各处(Claude Code、项目目录、.skill 包)的技能汇总入库,引用或副本两种方式,能导出打包 |
asakumizy/dsh-local-skills | 本地技能浏览器,Notion 风格的界面 |
| 本插件 | 技能内容本身 + 分发:自带一整套能用的技能,用技能包分发,管升级与本地改动 |
三个装在一起不冲突(id 不同),只是功能有重叠。同一个技能名不要装两份,那样每个技能会被注册两次。
开发
node verify.mjs # 自测 59 项:解析、增删改查、路径安全、工具定义、技能包、项目级扫描、路由表
node check-tools.mjs # 用 DSH 自己的 JSON Schema 校验器检查六个工具的定义
node check-pack.mjs # 检查技能包内容是否符合规范
node measure.mjs # 量出每轮对话的固定开销
技能文件(skills/*/SKILL.md)改动会热生效,保存即用。
插件代码(index.js、client.js)改动需要重载:client.js 刷新页面即可;index.js 因为 Node 会缓存已加载的模块,要把插件卸掉再装(或重启 DSH)。
要往包里加技能、或者重写技能时,先读 REWRITE-GUIDE.md:那里记了附件该怎么分类(模板类压进正文,方法类与机制类必须留附件),以及第一次重写时因为「一律单文件」而丢掉 19% 内容的教训。
要发版时,先读 RELEASING.md:npm 现在只认勾了 Bypass 2FA 的令牌,那份文档写着令牌怎么建、.npmrc 怎么写、发布后必须收回什么,以及 403 和 404 各自真正代表什么(404 不是包名问题,是认证无效)。那份文档整份复制到别的项目也能用。
目录结构
dsh-skill-starter/
package.json 插件清单(dsh.bundle.patch 指向下面的补丁)
cordis.patch.yml 告诉 DSH 加载这个插件
index.js 宿主侧:注册内置技能、六个工具,提供面板接口
client.js 浏览器侧:设置页「Skill 管理」面板
skills/ 6 个基础技能
packs/engineering-zh/ 技能包:20 个技能 + 10 份附件
verify.mjs 自测
check-tools.mjs 工具定义校验
check-pack.mjs 技能包规范校验
measure.mjs 成本测量
REWRITE-GUIDE.md 重写或新增技能的规范
RELEASING.md 发版到 npm 的流程(可整份复制到别的项目)
CHANGELOG.md 更新记录
许可
MIT
Comments
Loading…
Similar plugins
by tuoLuoSuan
技能中心 — 在 DeepSeek Harness 的 Web GUI 里浏览、体检并一键安装全世界的 Agent Skills。Skill Center for DSH: five public skill sources, pre-install validation, provenance, update checks and a trash.
★ 3
↓ 965/wk
MIT
JavaScript
Oct 10, 2026
dsh plugin --profile web add dsh-skill-centerby xiaoxianyu-office
DSH Skills 管理器:设置页系统/用户技能分类,用户技能开关/编辑/删除/新建。Skills manager for DeepSeek Harness: system/user skill management (toggle/edit/delete/create) in Settings.
★ 3
↓ 207/wk
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-skills-managerThree-layer skill management for DeepSeek Harness: a library pool, per-workspace enablement whitelists, and per-session picks, with a Web settings panel, a conversation-embedded view, a skill file bro
★ 1
↓ 302/wk
NOASSERTION
JavaScript
dsh plugin --profile web add dsh-skill-managerby xiex16070-jpg
Persistent learning for DeepSeek Harness: turn a session's corrections, failures and fixes into ordinary DSH skills. Zero extra model calls.
★ 1
MIT
JavaScript
Oct 10, 2026
dsh plugin --profile web add dsh-learnSkill Manager page in the DSH settings panel: browse system / user / workspace / preset skills, expand a skill to its file tree, view and edit files, import skills from a zip, and export or delete the
★ 2
↓ 276/wk
MIT
TypeScript
dsh plugin --profile web add dsh-skill-managerby bauerelizabeth07139
DeepSeek Harness plugin that bundles the simple-plan skill: plan, execute with worker subagents, verify every deliverable with memoryless verifier subagents, and fix in at most three cycles. The Skill is shipped by the bundle, so there is nothing to copy into a skills directory.
★ 0
MIT
JavaScript
Oct 4, 2026
dsh plugin --profile web add dsh-simple-plan