RagnarPitla/dsh-field-guide--plugins-dsh-plugin-dev0

dsh-plugin-dev

为 DSH 智能体提供插件编写与配置调试技能的插件。

AI 分析

核心用途是教导智能体如何编写、安装外部插件以及调试配置。适合进行 DSH 插件开发、扩展和系统调试的开发者。

包名
dsh-plugin-dev
版本
0.1.0
许可证
MIT
最近更新
2026年8月24日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:RagnarPitla/dsh-field-guide#63a1a43eb9c61634e0d2fe00b2eea8b0a1743834&path:plugins/dsh-plugin-dev

dsh-plugin-dev

Plugin-authoring and composition-debugging skills for DeepSeek Harness agents.

This bundle ships two skills that teach an agent how to extend the harness it is running inside: how to write and install an external plugin, and how to work out what a profile actually loaded when something does not take effect.

Every claim in the skill bodies was verified by executing the published dsh CLI, not read from documentation. See How it was verified.

Install

dsh plugin --profile 
 add dsh-plugin-dev

dsh plugin add appends the package to your profile's dsh.profile.bundles for you. Confirm it composed:

dsh --profile 
 --dump-config | grep -A2 plugin-dev-skills

What it provides

SkillCovers
dsh-plugin-authoringThe three-file minimal plugin, the named-export contract, dsh plugin add behaviour, the extension seams, host plane vs agent plane, and the three traps that make a correct plugin appear to do nothing
dsh-composition-debugThe keyless --dump-config workflow, bundle vs profile vs agent preset, patch layer order and the no-deep-merge rule, and counting what actually runs

Both are model- and user-invocable by default.

Requirements

The registry (@deepseek-ai/dsh-skill) and the model-facing consumer (@deepseek-ai/dsh-tool-skill) must both be in the composition. Both ship in @deepseek-ai/dsh-base, so any standard profile already satisfies this.

Registering skills without dsh-tool-skill present mounts cleanly and the model never sees them — which is one of the traps dsh-plugin-authoring documents.

Config

FieldDefaultMeaning
includeallRegister only the named skills
modelInvocabletrueWhether model-facing catalogs include these skills
userInvocabletrueWhether human-facing command catalogs include these skills
- id: plugin-dev-skills
  name: dsh-plugin-dev
  config:
    include: [dsh-composition-debug]
    userInvocable: false

Remember that a patch replaces a row's entire config. There is no deep merge.

Design notes

The skills are registered as runtime skills through ctx.skills.register() rather than by adding a filesystem provider root. That keeps the pack self-contained and independent of $DSH_HOME layout, at the cost of the skills not being editable in place by the user. Fork the package to change them.

The Markdown files use SKILL.md-compatible frontmatter, so skills/ also works if copied into a filesystem skill root such as ~/.dsh/skills/.

Frontmatter is parsed by a small strict reader for three scalar keys rather than by a YAML library, so the package has no runtime dependencies. A plugin resolves its imports from the profile it is installed into, and depending on a package the host does not supply as a peer is a common source of install failures.

How it was verified

node verify.mjs

verify.mjs mounts the real @deepseek-ai/dsh-skill registry and this plugin on a bare Cordis context, then asserts that both skills are discoverable through ctx.skills.list(), that ctx.skills.get() returns bodies with frontmatter stripped, and that the include and invocation config fields are honoured.

It also confirms the documented install behaviour: after dsh plugin --profile skilltest add ., the profile manifest contained

"bundles": ["@deepseek-ai/dsh-base", "dsh-plugin-dev"]

and the composed tree carried the row under a # == dsh-plugin-dev provenance comment.

Verified against dsh 0.1.0-rc.7 and @deepseek-ai/dsh-skill 0.1.0-rc.7 on 2026-08-24. DeepSeek Harness is pre-release and its plugin contracts may change.

Licence

MIT. Independent and unofficial: not affiliated with, endorsed by, or sponsored by DeepSeek.