技能提供者:将整个 @dennisrongo/skills 目录作为一个 npm 依赖安装,无需克隆仓库或链接目录即可完成技能的安装与更新。
安装
# npm 包(预构建)
dsh plugin --profile web add @dennisrongo/dsh-skills
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:dennisrongo/dsh-plugins#path:/plugins/dsh-skills
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
该插件的 README 只有英文版本。
npm: @dennisrongo/dsh-skills ·
source: dennisrongo/dsh-plugins
Serves the @dennisrongo/skills library
to dsh as a skill provider, so the whole catalog installs and updates as one npm
dependency.
Mind the scope. The unscoped
dsh-skillson npm is an unrelated plugin by another author, soadd dsh-skillsfetches theirs, not this one.
dsh plugin --profile <name> add @dennisrongo/dsh-skills
That is the entire install. The library ships as this plugin's own dependency, so there is no clone to make, no directory to create, and nothing to link.
Why a plugin and not a link script
Skills are normally dropped into <agentsHome>/skills and discovered from there. That works
well for keeping an already installed catalog fresh — which is what
scripts/link-superpowers-skills.mjs does for a superpowers clone — but it is not an install
path: it presumes ~/.agents/skills exists, and nothing in the harness creates it. A missing
root is discovered as an empty list, not an error, so a fresh machine gets a silently empty
catalog and no diagnostic.
Making the library an npm dependency of a plugin moves the whole problem into pnpm, which already solves it.
Updating
# what is behind, across the whole profile
dsh plugin --profile <name> outdated
# newest CATALOG (the usual case — skills changed, plugin did not)
dsh plugin --profile <name> update @dennisrongo/skills
# newest PLUGIN (provider logic changed)
dsh plugin --profile <name> update @dennisrongo/dsh-skills
# check what is out there first
npm view @dennisrongo/skills version
then restart the profile. dsh plugin is a thin pnpm forwarder, so every pnpm subcommand
works. The plugin declares @dennisrongo/skills: ^0.16.0, so skills move with a normal
dependency bump and the plugin only needs a release for a major.
You will see this on install — it is orientation, not a fault:
warning: @dennisrongo/skills declares no dsh.bundle — installed as a plain dependency
The library is a plain library; only the plugin is a bundle.
Pointing it at a clone
Contributors editing skills can bypass the packaged copy entirely. Resolution order, first hit wins:
skillsRootin the profile'scordis.patch.yml- the
DSH_SKILLS_ROOTenvironment variable - this plugin's own
@dennisrongo/skillsdependency - a probe of common clone locations under
$HOME
# <profile>/cordis.patch.yml — a bare id: CONFIGURES the self-mounted row
- id: skills
config:
skillsRoot: /absolute/path/to/claude-skills
Bodies are read when the catalog is collected, so edits under a clone land without reinstalling. If nothing resolves, the plugin warns naming every knob and registers nothing — dsh still boots.
Config
| key | default | meaning |
|---|---|---|
skillsRoot |
"" → resolved (see above) |
root containing skills/<name>/SKILL.md |
enabled |
true |
set false for a clean-baseline profile |
Precedence
Skills register into the profile's global layer, which every agent preset sees. A nearer
layer wins outright, so a project's own .dsh/skills still shadows a library skill of the
same name — the library is a baseline, not an override.
Known upstream defect
5 of the 31 skills in @dennisrongo/skills@0.16.0 — code-review, e2e-verify,
maestro-mobile-test, nextjs-app-router, task-executor — have frontmatter that is not
valid YAML: an unquoted description containing a literal ": " parses as a nested mapping.
They are skipped with a warning.
This is upstream in dennisrongo/claude-skills, not in this plugin: dsh's own
skill-filesystem provider uses the same parser and drops them identically. Quoting or
folding those descriptions upstream fixes it, and the plugin picks them up on the next
update with no change here.
Notes
- The folder is
plugins/dsh-skillsbut the package is@dennisrongo/dsh-skills. Mind the scope: the unscopeddsh-skillson npm is an unrelated plugin by another author, soadd dsh-skillsfetches theirs, not this one. @deepseek-ai/cordisand@deepseek-ai/schemasteryare peers supplied by your dsh install;yamlis a real dependency becausescripts/anchor.mjsonly anchors@deepseek-ai/*.
About the author
Plugins and walkthroughs on YouTube @codingmenace — I build AI coding tools in public, including DeepSeek Harness itself. More at dennisrongo.com.
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-skill-explorer★ 8978
技能中心:按来源分级浏览已加载的全部 skill,启用/禁用模型调用、创建新技能、删除进可恢复回收站。
QingYunA/answer-me-with-html★ 3705
把回答做成一页可视化 HTML:模型只写简短的 Markdown 草稿,随包附带的 `am` 命令行生成页面,支持流程图、时序图、树、时间线、ER 图、表格和提示框。
GanyuanRan/Aegis★ 1359
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。
superdesigndev/superdesign-skill★ 841
在 Superdesign 画布上做 UI 与营销图的设计技能:先读代码库拿上下文、抽取现有设计系统,再通过 Superdesign CLI 生成并迭代可分支的设计稿、流程页与可复用组件。
linhay/harmony-next.skills★ 362
为 DeepSeek Harness 提供 HarmonyOS NEXT 技能包、离线 API 参考及 DevEco、HDC 与模拟器自动化指南。
dhicoc/dsh-reverse-skill★ 264
完整 reverse-skill(85 个 SKILL.md)的 DeepSeek Harness 插件:逆向工程、授权渗透测试与安全研究的技能路由包。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。