Introduction¶
In the DSH ecosystem, the number of plugin repositories is growing, each with its own conventions for manifest protocols, patch formats, TypeScript build configurations, and hub listing status. Manual cross-checking is prone to omissions, and CI or model-side workflows lack a unified gatekeeper. This introduces omdsh-dev/dsh-plugin-check: a tool for statically scanning plugin directories, outputting compliance reports and fix suggestions, without modifying or building the repositories being checked.
What Is This¶
dsh-plugin-check is maintained by omdsh-dev and is categorized as a connected tool in SkillHub (directory page). It registers a plugin_check tool (row ID: tool-plugin-check) within DSH, capable of scanning single or batch plugin repositories, diagnosing issues related to manifest protocols, patch formats, build pitfalls, and hub listing status, and outputting a unified JSON report.
Key design points:
- Read-only: Only uses
readdir/stat/readFile, making no changes to the repositories being checked. - Zero business dependencies: At runtime, it only uses Node built-in modules (
fs/path/child_process). - No tsc execution: All build-related checks rely on static text scanning.
License: MIT; npm package name: @omdsh-dev/dsh-plugin-check, current version: 0.1.0, requires Node ^22.19.0 || >=24.0.0.
Core Features¶
Three Actions¶
| Action | Purpose |
|---|---|
check |
Checks a single plugin repository directory, returning verdict / errors / warnings / suggestions. |
scan |
Scans a parent directory for all dsh-* plugin repositories containing a package.json, producing an aggregated report. |
schema |
Outputs the full list of check items and their criteria for model or manual review. |
Tool Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
string | ✅ | check / scan / schema |
path |
string | Plugin directory (for check) or parent directory (for scan); defaults to the current working directory. |
|
strict |
boolean | When set to true, warnings are escalated to errors and affect the verdict; defaults to false. |
Shape Recognition and 33 Checks¶
The tool applies different sets of checks based on the repository shape (registry / skill / collection / tool-bundle / bundle / infra / unknown), totaling 33 items across four categories:
| Category | Typical Errors | Typical Warnings |
|---|---|---|
| Manifest Protocol | no-manifest, invalid-name-format, missing-main-or-types, no-patch | incomplete-files, missing-peer, no-bundle-decl |
| Patch Format | malformed-patch, patch-name-mismatch, duplicate-row-id | unexpected-fields |
| Build Pitfalls | no-source-entry, no-tsconfig, missing-ts-ext-imports, lib-layout-mismatch, stale-ts-imports | missing-rewrite-imports, types-path-mismatch, implicit-node-types, no-build-script |
| Ecosystem Compliance (Profile Bundle) | core-row-id, missing-profile-install-example, manual-install-only, core-modification-required | — |
| Hub Listing | — | not-in-hub (marked as info if hub checks are skipped, not counted as a warning) |
Verdict Rules:
verdict: 0 errors →pass; any errors →fail; only warnings →warn.- The
checksfield records the execution results of fixed check items (total / passed / failed / warned / skipped), not the count of issues.
Naming Strategy: invalid-name-format only indicates an npm format error; valid personal scoped/unscoped names will only produce non-org-recommended-name (warning). Recommended scopes are @deepseek-ai/*, @dsh-external/*, @omdsh/*, and dsh-*.
Hub Check and Security Model¶
Hub listing checks are offline-first: they first read a local hub catalog (DSH_HUB_SOURCE or cwd/hub/), then use gh to fetch the public omdsh-dev/dsh-hub-workshop/catalog.json; compatible with dsh-hub-index/v0.4 and older repos[].name formats. If all attempts fail, they silently degrade to skipped, and the report notes this accordingly without counting it as a warning.
Installation and Enabling¶
It is recommended to install via a Profile Bundle into DSH 0.1.1-rc.1 (npm) profile. Web and headless are different profiles: dsh run uses headless by default, and installing in the web profile will not automatically overwrite the headless profile.
Interactive (web) profile:
dsh plugin --profile web add github:omdsh-dev/dsh-plugin-check
One-off task (headless) profile:
dsh plugin --profile headless add github:omdsh-dev/dsh-plugin-check
The included dsh.bundle.patch will add the plugin to the profile’s layer stack after installation. Missing peer dependencies (cordis, @deepseek-ai/dsh-tools) are provided by the profile’s healed profiles/node_modules fallback installation.
For local builds, install via tarball (without relying on GitHub):
npm pack
dsh plugin --profile web add <path to npm pack output tarball>
Verify successful loading:
dsh --profile web --dump-config | grep tool-plugin-check
Start DSH (npm 0.1.1-rc.1 line, lib production mode):
npx -p @deepseek-ai/dsh@0.1.1-rc.1 dsh web
Typical Usage¶
Check a single plugin repository:
plugin_check { action: "check", path: "C:/Users/admin/Desktop/dshext/dsh-tool-csv" }
→ {"repo":"dsh-tool-csv","kind":"tool-bundle","verdict":"pass","checks":{"total":24,"passed":24,...}}
Scan all dsh-* plugins in a parent directory:
plugin_check { action: "scan", path: "C:/Users/admin/Desktop/dshext" }
→ {"root":"...","scanned":11,"reports":[...]}
Invoke via a DSH session:
dsh run "Use the plugin_check tool to check a plugin repository"
View all check item definitions:
plugin_check { action: "schema" }
Use Cases and Considerations¶
Who It’s For
- Plugin authors for self-checking manifests, patches, build configurations, and Profile Bundle compliance before submission.
- CI or model workflows running gates on
dsh-*repository directories, obtaining structured JSON reports. - Maintainers performing bulk
scanon parent directories before updating the hub catalog to identify non-compliant repositories.
Prerequisites
- Plugins run with the permissions of the current DSH process; before installation, you should read the GitHub source code and the MIT license.
- Hub checks rely on a local catalog or
ghaccess to public repositories; if the environment doesn’t meet these, hub items will beskippedwithout affecting other checks. - For legacy monorepo integrations or snapshots that don’t support Profile Bundles, refer to the “Manual Installation and Legacy Version Compatibility” section in the README.
- SkillHub is an independent community directory with no official affiliation with DeepSeek or Hopfield.
Conclusion¶
dsh-plugin-check consolidates known manifest, patch, build, and hub compliance issues encountered within the organization into an executable, read-only gate. After setting up the profile, simply invoke plugin_check on the target directory to obtain a verdict and fix suggestions.