Skill provider that installs the whole @dennisrongo/skills catalog as one npm dependency, so skills install and update without cloning or linking directories.
Install
# from npm (prebuilt)
dsh plugin --profile web add @dennisrongo/dsh-skills
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:dennisrongo/dsh-plugins#path:/plugins/dsh-skills
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
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.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-skill-explorer★ 8978
Skill center for the dsh web GUI: browse all loaded skills grouped by source, enable or disable model invocation, create new skills, and delete into a recoverable trash.
QingYunA/answer-me-with-html★ 3705
Answers a question with a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled `am` CLI builds the page, with flow, sequence, tree, timeline and ER diagrams, tables and callouts.
GanyuanRan/Aegis★ 1359
Software-engineering method pack for coding agents, with skills for baseline-first planning, systematic debugging, prompt hygiene, verification before completion, and repair/retirement tracking.
superdesigndev/superdesign-skill★ 841
Design skill for UI and marketing graphics on the Superdesign canvas: reads the repo for context, extracts its design system, then generates and iterates branchable design drafts, flow pages, and reusable components through the Superdesign CLI.
linhay/harmony-next.skills★ 362
HarmonyOS NEXT skill bundle for DeepSeek Harness with offline API references and DevEco, HDC, and emulator automation guidance.
dhicoc/dsh-reverse-skill★ 264
Complete reverse-skill pack (85 SKILL.md) as a DeepSeek Harness Cordis plugin: reverse engineering, authorized pentesting and security-research skill router.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.