Introduction¶
Many developers have accumulated SKILL.md, Cursor rules, and Claude Code commands in tools like Claude Code, Cursor, and Gemini CLI. The problem is usually not a lack of skill files, but rather that DSH does not directly discover these files nor read these adjacent formats.
dsh-skillport is a DSH plugin bundle designed to discover these existing skills and integrate convertible formats into the DSH native skill registry.
What is this¶
dsh-skillport (repository: Jesse-njx/dsh-skillport) is an MIT-licensed DSH plugin bundle. It targets developers who already have multi-source skill files, primarily solving three things:
- Discover
SKILL.mdlocations that DSH does not cover by default. - Convert adjacent formats such as Cursor rules, Claude Code commands, and context files.
- Provide debugging and retrieval entry points such as
skills doctorandfind_skill.
Core Features¶
Discovering existing SKILL.md¶
The plugin checks the following Agent Skills locations:
.claude/skills
~/.claude/skills
~/.gemini/antigravity/skills
extraPaths
.dsh/skills
.agents/skills
When the DSH native dsh-skill-filesystem provider already exists, .dsh/skills and .agents/skills are skipped to avoid duplicate scanning.
Converting adjacent formats¶
The plugin converts convertible adjacent formats into DSH skills:
- Cursor rules: Convert
.cursor/rules/*.mdcinto model-invocable skills. - Claude Code commands: Convert
.claude/commands/*.mdinto user-invokable skills, invoked via/name. - Context files:
AGENTS.mdandCLAUDE.mdare only injected as project context if the DSH nativedsh-agent-instructionsplugin does not exist. If the native plugin exists, it takes precedence.
Integrating into the DSH native registry¶
Discovered or converted skills enter the DSH native skill registry ctx.skills. They are then displayed or loaded by DSH’s own catalog injection, progressive-disclosure index, and skill loader tool.
dsh-skillport does not provide a standalone execution path. Skills with scripts still run inside a sandbox via DSH’s normal shell tool, with sandbox policy serving as the single point of execution.
Cleanup on uninstall¶
After removing the plugin, all skills imported by it will be unloaded:
dsh plugin remove @dsh-skillport/bundle
skills doctor and find_skill¶
skills doctor is used to check the skill list and trigger quality. It can be run within a session:
/skills doctor
/skills doctor deploy the app to production
It can also be run in the terminal:
skills-doctor --cwd ~/work/projectx list
skills-doctor --cwd ~/work/projectx test-fire "deploy the app to production"
find_skill is used to find skill candidates. Once the maxIndexEntries limit takes effect, dsh-skillport’s model-invocable candidates become user-invocable only and are exposed via find_skill.
Fixed spec revision¶
The plugin includes a fixed Agent Skills spec revision, located at:
docs/spec-revision.md
It also comes with a conformance fixture suite to expose spec drift in CI.
Installation and Enablement¶
The runtime requires Node.js >= 20.
First, add the plugin:
dsh plugin --profile web add @dsh-skillport/bundle
Then, in a DSH session, ask the model to load a skill you originally maintained in Claude Code. The catalog will list it, the skill loader tool will load it, and bundled resources will be parsed along with it.
If you need to remove it later:
dsh plugin remove @dsh-skillport/bundle
Typical Usage¶
Loading existing skills after installation¶
After installation, first let the model load an existing skill in the session, then confirm if the catalog lists that skill.
Checking skill trigger¶
Within a session:
/skills doctor
/skills doctor deploy the app to production
In the terminal:
skills-doctor --cwd ~/work/projectx list
skills-doctor --cwd ~/work/projectx test-fire "deploy the app to production"
Finding candidates after catalog limits¶
If maxIndexEntries is configured, some skill candidates may not directly enter the model-invocable index. In this case, you can use find_skill to find candidates.
Configuration¶
All configuration items are optional and can be set in a profile patch or cordis.patch.yml:
plugins:
dsh-skillport:
sources: [dsh, claude, agents, gemini]
extraPaths: []
convert:
cursorRules: true
contextFiles: true
claudeCommands: true
maxIndexEntries: 100
providerName: skillport
Meaning of each field:
sources: Select the discovery set to scan.extraPaths: AdditionalSKILL.mddirectories.convert.cursorRules: Whether to convert.cursor/rules/*.mdc.convert.contextFiles: Whether to injectAGENTS.md/CLAUDE.md. If the DSH native plugin has already handled this, it will be skipped.convert.claudeCommands: Whether to convert.claude/commands/*.mdinto user-invokable skills.maxIndexEntries: prompt-bloat cap. Once this value is exceeded,dsh-skillport’s model-invocable candidates become user-invocable only and are exposed viafind_skill.providerName: The provider name in the skill registry.
Suitable Scenarios and Notes¶
Suitable for:
- Developers who maintain
SKILL.mdor adjacent formats in Claude Code, Cursor, or Gemini CLI. - Developers who wish to reduce migration costs by integrating these skills into the DSH native registry.
- Developers who need to check skill trigger quality or retrieve candidate skills after catalog limits.
Notes:
- The plugin runs with the current
dshprocess permissions; check the source code and license before installing. AGENTS.md/CLAUDE.mdare not injected repeatedly. If the DSH nativedsh-agent-instructionsexists, the native plugin takes precedence..dsh/skillsand.agents/skillsare not processed repeatedly. If the DSH nativedsh-skill-filesystemprovider exists,dsh-skillportwill skip these paths.- Claude Code plugins / hooks / subagents are not ported.
- MCP config translation is out of scope.
- Codex / Cursor extension binaries are out of scope.
dsh-skillportdoes not provide a standalone execution path. Skills with scripts still run inside a sandbox via DSH’s normal shell tool.
Links¶
GitHub: https://github.com/Jesse-njx/dsh-skillport