Introduction¶
DSH’s philosophy is “everything is a plugin,” and Skills are no exception. The trouble comes from quantity: SKILL.md files might be placed in the project root, user root, or .agents directories. When there are a dozen or so, using /name to invoke them directly is enough. After twenty or thirty, the nature of the problem changes.
First, you don’t know what you have. Skills with the same name overlap in different root directories; it’s not visible from the interface which one takes effect or is masked. Second, you don’t know which one to use. Every SKILL.md writes rules, but no one remembers “which one for iterative planning” or “which one for API design”. Third, the name doesn’t match the purpose. What’s the difference between analysis-funnel and analysis-retention? You have to open both and read them. Finally, you don’t dare to clean up. Disabling a Skill means actually editing the file.
The dsh-skill-manager introduced below handles these types of problems. It is a client-side plugin maintained by ZBCs-StudioCr-CN. It currently has 2 stars on GitHub. Its approach is to turn “finding, recognizing, and managing Skills” into a few cards and switches in the sidebar, rather than making you continue flipping through directories.
One-sentence positioning and installation source¶
The entry for the plugin in the community directory is “DeepSeek Harness Visual Sidebar Skill Smart Manager.” Its positioning is to upgrade the Skill file manager into a Skill navigator: categorize Skills by delivery stage, and generate a line of usage suggestions for each Skill.
The current version is v0.3.0. To install, the official command given is PowerShell:
dsh plugin --profile desktop add link:D:\path\to\dsh-skill-manager
Or pack first with npm pack and then install:
npm pack
dsh plugin --profile desktop add .\dsh-skill-manager-0.3.0.tgz
After installation, restart the DeepSeek Harness desktop client. The plugin is loaded at startup. Then refresh the interface, and the sidebar will appear with “Skill Management”.
Intelligent Classification: Categorize by delivery stage, not by literal word search¶
This is one of the main changes in v0.3.0 compared to previous versions. Click “AI Intelligent Categorization” once, and the model will read each Skill’s name, description, and body excerpt, judge which step in the delivery process it is in, and then archive it into a fixed stage table:
需求分析 · 商业论证 · 方案设计 · 原型美工 · 开发实现 ·
测试验收 · 上线部署 · 运营增长 · 成本优化 · 协作管理 · 其他
Several implementation details are worth noting:
- This stage table is closed. The model can only choose from within it and will not produce fragments like
decisionorapplication(synonyms); - For a large skill library, it will be sent in batches of 12 to avoid returning empty results due to too much data being stuffed in at once;
- If the model is unavailable, it falls back to a stage keyword table. For example, funnel/conversion goes to “Operations Growth”, token/compression goes to “Cost Optimization”. It still follows stages, not ordinary word clustering;
- Manually created classifications will not be overwritten. Classifications generated by the model are marked with
auto. When re-running, only this batch is replaced.
The significance of classification lies in providing a second dimension of filtering: you are not searching by alphabet or path, but by “which stage you are currently in”.
Intelligent Usage Suggestions: One-line description for each Skill¶
When opening the panel, a line of suggestions generated by the model will be appended below each Skill’s original description to explain what it does and under what scenarios it is used. The original description will not be rewritten.
/analysis-funnel
Evaluates 19 acquisition channels by scale, conversion and ROI… ← 原有描述,保持不变
AI 建议 拆解渠道漏斗、定位流失环节(适用:复盘转化情况) · 分类:运营增长 [重新生成]
There are several constraints on the mechanism:
- Suggestions are automatically generated for every Skill, and there is a global “Show AI Suggestions” switch that can be turned off;
- Suggestions are written to an independent side file
$DSH_HOME/skill-manager/suggestions.json, not intoSKILL.md, and are hashed against the file content; if the content changes, old suggestions automatically become invalid; - Supports “Generate/Regenerate All AI Suggestions for the entire library” with one click, and also supports regenerating individual lines;
- The output language can be selected as Chinese or English.
Classification answers “which step in the process it is in,” while suggestions answer “what it does and when to use it.” Together, they solve the three or four problems mentioned earlier.
Other Management Capabilities¶
In addition to the two above, the plugin covers daily maintenance actions:
| Capability | Specific approach |
|---|---|
| Enable / Disable | Implemented via registry override strategy. Source files are not moved, can be restored instantly, and are restored on uninstall. |
| Default Loading | Merges three scopes: Global, This Project (matched by project root), and By preset (e.g., standard). |
| Classification Management | Create / Rename / Delete. Supports keyword matching, many-to-many assignment, and collapsible cards. |
| Import | Paste entire SKILL.md from clipboard, directory selection (uses host native picker), and ZIP unpacking (unpacked on host, path traversal is rejected). |
| Edit SKILL.md | Create / Edit / Delete in the panel. Validates kebab-case, does not overwrite existing content, and preserves unmanaged frontmatter keys. |
| Masking Report | Highlights Skills that are masked by higher-priority root directories. |
| Sidebar Entry | Registers a main panel and a sidebar.panellist entry. It is not hidden in the settings page. |
Configuration Items¶
Configuration is written in the plugin’s config. The example given in the README:
- id: dsh-skill-manager
name: dsh-skill-manager
config:
provider: deepseek-account
model: deepseek-flash
customSkillDirs: ['D:/shared-skills']
log: false
Default values and meanings for each field:
| Field | Default Value | Meaning |
|---|---|---|
provider / model |
deepseek-account / deepseek-flash |
The model used to generate suggestions and classification. |
includeDefaultRoots |
true |
Scan project root and user root directories. |
customSkillDirs |
[] |
Additional root directories, priority rank 300. |
bundledSkillDir |
$DSH_BUNDLED_SKILL_DIR |
Read-only root directory, priority rank 600. |
dshHome / agentsHome |
$DSH_HOME / $DSH_AGENTS_HOME |
Base for resolving root directories. |
log |
true |
Append writes to $DSH_HOME/skill-manager/skill-manager.log. |
How It Works¶
The plugin is divided into two parts, which is why it is classified as “client-side”.
Host Side (lib/) is responsible for the control panel: implements Enable/Disable via a rank 0 override provider; uses systemPrompt.section for default loading; registers endpoints under the official /api channel via connection.fetch.register; preferences are written to $DSH_HOME/skill-manager/preferences.json, and suggestions to suggestions.json.
Browser Side (client/src/client/) is responsible for the interface: registers a main panel and sidebar.panellist entry; bundles into a module in the form of window.__ModuleLoader__.load({ id, factory }); only depends on react.
AI Calls go through the host’s ctx.llm. The prompt only requires JSON output, retrying once on failure, then falling back to the stage keyword table.
How to verify it is actually working¶
The README provides two commands:
npm test
Covers 29 checks, including host side, endpoints, bundle artifacts, and UI rendering.
node scripts/verify-v4.mjs http://127.0.0.1:58809
Run the complete chain using an isolated instance with a real model.
The author’s practical test conclusion on DSH 0.2.2-rc.1 desktop is: the isolated instance passed 10/10 checks. Suggest not touching original files; regeneration works normally. Stage classification really comes from the model, and all 27 Skills were categorized. On the UI side, mounting the real build artifact in jsdom verified auto-generation, writing global switch to preferences, search filtering, and scope default loading. After disabling a Skill, /registry reports provider: skill-manager and modelInvocable: false, indicating the override takes effect in the real registry.
Known Limitations¶
- The “By preset” scope depends on
agentPresetin session metadata; if missing, only Global and Project scopes take effect; - Suggestions are generated serially for each Skill. Opening for the first time with 20+ Skills takes 1 to 2 minutes; if this is not suitable, turn off the global switch;
- A few edge Skills will fall into “Other”; you can manually check the classification in the edit dialog;
- It only manages DSH Skill root directories that
dsh-skill-filesystemreads; - Deletion is irreversible, there is no trash can, and a confirmation prompt appears during operation.
Applicable Scenarios and Precautions¶
Suitable for people who have accumulated more than a dozen Skills and they belong to multiple projects or shared team directories. If you currently only have two or three small Skills, using /name directly is enough, and the benefit of installing this is not great. The suggestions mainly rely on people whose Skill library is becoming increasingly messy and who can’t find which one to use.
Before use, it is recommended to do three things: first, read README.md and the MIT license text; confirm that the version you intend to install is compatible with the current DSH version (the package.json says dsh >=0.2.1, and the test environment in the README is 0.2.2-rc.1); the plugin runs with the permissions of the current DSH process and can read/write the Skill root directories you configured; confirm before installation that the contents of these directories can be accessed by the plugin.
Conclusion¶
dsh-skill-manager does not introduce new Skill capabilities; it does the search and navigation layer: categorizing by delivery stage and adding a line of usage suggestions. When the number of Skills grows from a dozen to dozens, this layer of visual management is much more useful than continuing to flip through directories.
- Directory page: https://www.skillhub.cn/plugins/ZBCs-StudioCr-CN/dsh-skill-manager
- GitHub: https://github.com/ZBCs-StudioCr-CN/dsh-skill-manager
The community directory is an independent site with no affiliation to DeepSeek official.