Installed a plugin but nothing responds, skills are missing, or configuration changes do not take effect—these issues are common in DeepSeek Harness(DSH)development. Some existing diagnostic approaches are either not specific enough or try to modify configuration directly, which can easily introduce side effects.

dsh-doctor focuses on read-only diagnosis. It does not modify files, change profiles, or touch any line in the Loader tree. Instead, it directly answers “why”—which plugin line did not run, which skill provider failed as a whole, whether there are duplicate ids in a patch, and whether HMR is configured correctly.

Plugin Introduction

Name: dsh-doctor
Author: louisyeaaah
Category: Workflow
License: MIT

This is a read-only diagnostic plugin for troubleshooting runtime loading and visibility issues in DSH. It collects facts by reading host internal structures(ctx.loader, ctx.skills, ctx.hmr, etc.), outputs a list of issues with a next-step recommendation for each, and provides a Markdown card redacted by default for easy pasting into an issue.

Core Capabilities

The plugin mainly covers four diagnostic areas:

  1. Plugin line status
    Detects which plugin lines are not running and which are disabled, addressing the “installed a plugin but the tool does not appear” problem.

  2. Skill providers
    Calls each provider’s list() method one by one, captures, and displays the raw error message. When the skill registry encounters a failure, it skips that provider and marks observation as incomplete, causing the model side to see no diagnostic information at all. dsh-doctor surfaces that raw error message.

  3. Patch layer conflicts
    Detects duplicate entry ids, multiple lines for the same package, and declared but uninstalled bundles, addressing “installed but not effective” or abnormal behavior issues.

  4. HMR configuration
    Detects HMR watch source configuration and whether node_modules is skipped, addressing the “changed code but no response” problem.

The plugin outputs an issue list and appends a next action after each conclusion.

Installation and Usage

The installation command is as follows:

dsh plugin --profile <profile> add github:louisyeaaah/dsh-doctor

After installation, it can be used in the following ways:

dsh_doctor()                  # 体检:插件行 / 技能提供方 / patch / HMR
dsh_doctor({ card: true })    # 输出可贴进 issue 的 markdown 卡片(默认脱敏)
/dsh-doctor card              # 人也可以直接敲

Notes and Limitations

Before using it, be aware of the following points:

  • Read-only guarantee: does not write any files, change profiles, or touch any line in the Loader tree. The only side effect is calling each provider’s list() in the page/engine(the registry would call it anyway).
  • Depends on host structures: depends on DSH internal structures(ctx.loader / ctx.skills / ctx.hmr / profileContext). It may stop working after DSH upgrades.
  • Limited scope: answers only loading and visibility-level issues; it cannot diagnose deeper “plugin behavior is incorrect” logic.
  • Performance impact: the skill providers’ list() will actually be called once. Extremely slow providers can make the diagnosis slower.
  • Ecosystem status: this repository is not published to npm(the name is also taken), and no submission plans. Install via the GitHub path or scripts/install.sh.

Value Positioning

There are already several projects with the same name in the ecosystem, covering more complete functions such as repair, rollback, and environment diagnosis. If you need “can recover when broken”, choose those projects instead.

This repository does only one thing: it explains “why” in read-only mode and outputs an English card redacted by default that can be pasted directly into an issue.