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 checks field 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 scan on 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 gh access to public repositories; if the environment doesn’t meet these, hub items will be skipped without 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.