SM
Skills Monitor
Back to skills
Everything Claude Code
deepseek-harness-setup
Install and operate Everything Claude Code (ECC) on the DeepSeek Harness (DSH): native skill roots (~/.dsh/skills, .agents/skills), the @deepseek-ai/dsh-hooks-claude-code bridge for command hooks, bare-insert patch mounting, generator usage
affaan-m
Oct 12, 2026
affaan-m/everything-claude-code

SKILL.md

skills/deepseek-harness-setup/SKILL.md

YAML Frontmatter4 lines
Frontmatter
name: deepseek-harness-setup
description: "Install and operate Everything Claude Code (ECC) on the DeepSeek Harness (DSH): native skill roots (~/.dsh/skills, .agents/skills), the @deepseek-ai/dsh-hooks-claude-code bridge for command hooks, bare-insert patch mounting, generator usage, event-support limits, and update workflow. Use when setting up ECC on DeepSeek Harness, wiring ECC hooks into a DSH profile, or debugging why ECC skills or hooks do not appear in a DSH session."
metadata:
  origin: community

DeepSeek Harness Setup

Run ECC on the DeepSeek Harness. Full guide: docs/DEEPSEEK-HARNESS-GUIDE.md.

When to Use

  • Installing ECC skills or hooks on a DeepSeek Harness install.
  • Deciding which ECC surfaces work on DSH and which do not.
  • Debugging a DSH session that does not show ECC skills or does not fire ECC hooks.

How It Works

  1. Skills need no conversion. DSH reads SKILL.md frontmatter

(name/description) from native skill roots. Link the ECC catalog once:

   ln -s /path/to/ECC/skills/<skill-name> ~/.dsh/skills/<skill-name>

Root priority (project .dsh and .agents roots beat ~/.dsh): skip linking skills whose names already exist in a higher-priority root. Substitute real skill names for the placeholders; the angle brackets are not shell syntax.

  1. Hooks go through the first-party bridge. Generate a DSH-format config

from the canonical ECC hooks file:

   node scripts/dsh/generate-hooks-config.js --ecc-root /path/to/ECC --out ~/.dsh/ecc/hooks-dsh.json

The generator lower-cases tool-name matchers, prefixes CLAUDE_PLUGIN_ROOT/ECC_PLUGIN_ROOT inline (the bridge does not export the plugin root), preserves timeouts, and skips events DSH cannot bridge: PreCompact, PostToolUseFailure, SessionEnd.

  1. Mount with a bare insert in ~/.dsh/profiles/<profile>/cordis.patch.yml:
   - insert:
       - id: ecc-hooks-claude-code
         name: "@deepseek-ai/dsh-hooks-claude-code"
         config:
           configPath: /absolute/path/to/hooks-dsh.json

Loader rules that cost debugging time when learned the hard way: a plain - id: top-level entry is silently dropped; insert under an existing non-group id is rejected as "not a group"; first-party plugin packages need no profile package.json entry.

  1. Validate by composing, then verify live.
   cd ~/.dsh && dsh --profile web --dump-config > /tmp/dump.yml
   grep ecc-hooks /tmp/dump.yml

Compose exit status stays 0 even when the loader drops or rejects an entry — those problems are only reported on stderr. Confirm the entry id appears in the dump and stderr is empty. A live GateGuard denial on the session's first edit/write/bash is the visible signal the bridge is active.

Updating

git pull reflects into linked skills immediately; regenerate the hooks config with the same generator command. If the ECC checkout moves, regenerate (the path is embedded in every hook command) and relink skills.

Limits

SurfaceStatus on DSH
SkillsNative discovery; workflows may require host adaptation
Hooks23 command hooks on 5 of 7 bridge events
Slash commandsNot available (Claude Code mechanism); workflows covered by skills
AgentsNative dispatch unverified; use canonical prompt guidance only after review

The validated setup here targets the CLI/web profile. Desktop profiles have a separate installation-owned runtime and skill discovery must be verified there independently. Generate hooks only from a reviewed ECC checkout; the linked checkout supplies their runtime.