Preface

Matt Pocock’s agent skills are a common reference set in agent development. Integrating this set of 35 skills (upstream version 1.2.3) into DeepSeek Harness (DSH) requires solving a core problem: the upstream skills are designed for Claude Code, and their command mechanism differs from DSH.

In DSH, /name is a user command and cannot be executed directly by the model. Some DSH restrictions (such as disable-model-invocation) can cause model loading to fail. The plugin uses an adapter layer to convert upstream skills into a format recognizable by DSH and provides a set of runtime guidelines.

Core Features

The plugin packages upstream skills as a self-contained DSH plugin, mainly including the following components:

  • Skill Bodies: 35 upstream skills, preserved byte-for-byte in the skills/ directory.
  • Adapter Layer: 58 hand-written rules for semantic conversion and 29 mechanical slash normalizations for syntax correction. The adapter layer is validated at load time to ensure logical consistency.
  • Read-only Provider: registered via ctx.skills to manage skills as a single plugin entry, avoiding skill files scattered across user directories.
  • Runtime Guide: provides a model-invocable dsh-workflow skill explaining how skills are invoked in DSH, permission ownership, and workflow handoff.

Installation and Enablement

After cloning the repository from GitHub, install it using the link: method to support real-time updates. After installation, add the plugin to dsh.profile.bundles and restart the host.

git clone https://github.com/NmouZh/dsh-mattpocock-skills.git ~/dsh-mattpocock-skills
cd /root/.dsh/profiles/web
pnpm add "dsh-mattpocock-skills@link:$HOME/dsh-mattpocock-skills"

Modify package.json to add the plugin name to dsh.profile.bundles, then restart the DSH host.

Configuration and Usage

Configure it under id: mattpocock-skills in the profile’s cordis.patch.yml.

Basic Configuration

- id: mattpocock-skills
  config:
    enabled: true
    rank: 450
  • enabled: controls whether the entire plugin is active.
  • rank: deduplication priority for identically named skills; lower values take precedence.

Promoting Model Permissions

By default, 20 skills are user-initiated only. To allow the model to load these skills (for example implement), declare them in the promote list:

- id: mattpocock-skills
  config:
    promote: [implement, to-spec]

Note: Promoting skills adds their descriptions to the skill catalog in every model request, consuming prompt budget.

Adapter Layer Explanation

Differences between upstream skills and DSH are handled by overlay/patches.json:

  • Command Mapping: converts the model-executable “load skill” action into a DSH skill tool invocation.
  • Error Handling: marks skills with disable-model-invocation: true as non-invocable to avoid model errors.
  • Instruction Correction: removes commands not supported by DSH (such as /clear) and replaces them with creating a new session; corrects the hooks location for git-guardrails.

Maintenance and Upgrading

Maintaining the adapter layer involves two scripts:

  • vendor/gen-slash-rules.mjs: automatically generates mechanical slash normalization rules based on hand-written rules.
  • vendor/overlay-report.mjs: validates whether adapter rules hit their expected counts and whether anchors exist.

After upgrading upstream skills, run vendor/vendor-skills.mjs --check to check file integrity and whether the adapter layer can still be applied.

Diagnostics and Self-Checks

The plugin provides a diagnostic interface and log summary:

node /root/dsh-mattpocock-skills/dsh-mattpocock-skills/test/bundle.test.js
node vendor/vendor-skills.mjs --check

Host logs output a registration summary, such as:
mattpocock-skills: 36 skill(s) from …/skills (packaged) + 1 from the DSH overlay; 16 model-invocable, 20 user-invocable only, 16 adapted by 49 rule(s)

Use Cases and Notes

This plugin is suitable for developers who want to use Matt Pocock’s standard skill set in DSH. Before use, the Node.js environment requirement (^22.19.0 || >=24.0.0) must be met.

  • Permission Note: The plugin runs with the permissions of the current DSH process; review the source code and license before installation.
  • Configuration Activation: Modifying dsh.profile.bundles requires restarting the host; modifying cordis.patch.yml supports hot reloading.

Summary

This plugin resolves the incompatibility between upstream skills and DSH mechanisms. Through a fine-grained adapter layer and clear permission boundaries, it enables model developers to safely reuse a mature skill set. Full documentation and source code are available on GitHub.