deepseek-harness-setup
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDeepSeek Harness Setup
DeepSeek Harness 设置
Run ECC on the DeepSeek Harness. Full guide: .
docs/DEEPSEEK-HARNESS-GUIDE.md在 DeepSeek Harness 上运行 ECC。完整指南:。
docs/DEEPSEEK-HARNESS-GUIDE.mdWhen 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.
- 为 DeepSeek Harness 安装 ECC skills 或 hooks。
- 判断 DSH 支持和不支持哪些 ECC 功能。
- 排查 DSH session 未显示 ECC skills 或未触发 ECC hooks 的问题。
How It Works
工作原理
-
Skills need no conversion. DSH readsfrontmatter (name/description) from native skill roots. Link the ECC catalog once:
SKILL.mdbashln -s /path/to/ECC/skills/<skill-name> ~/.dsh/skills/<skill-name>Root priority (projectand.dshroots beat.agents): 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.~/.dsh -
Hooks go through the first-party bridge. Generate a DSH-format config from the canonical ECC hooks file:bash
node scripts/dsh/generate-hooks-config.js --ecc-root /path/to/ECC --out ~/.dsh/ecc/hooks-dsh.jsonThe generator lower-cases tool-name matchers, prefixes/CLAUDE_PLUGIN_ROOTinline (the bridge does not export the plugin root), preserves timeouts, and skips events DSH cannot bridge:ECC_PLUGIN_ROOT,PreCompact,PostToolUseFailure.SessionEnd -
Mount with a bare insert in:
~/.dsh/profiles/<profile>/cordis.patch.ymlyaml- insert: - id: ecc-hooks-claude-code name: "@deepseek-ai/dsh-hooks-claude-code" config: configPath: /absolute/path/to/hooks-dsh.jsonLoader rules that cost debugging time when learned the hard way: a plaintop-level entry is silently dropped;- id:under an existing non-group id is rejected as "not a group"; first-party plugin packages need no profileinsertentry.package.json -
Validate by composing, then verify live.bash
cd ~/.dsh && dsh --profile web --dump-config > /tmp/dump.yml grep ecc-hooks /tmp/dump.ymlCompose 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.
-
Skills 无需转换。 DSH 会从原生 skill 根目录读取frontmatter(name/description)。只需链接一次 ECC 目录:
SKILL.mdbashln -s /path/to/ECC/skills/<skill-name> ~/.dsh/skills/<skill-name>根目录优先级(项目级和.dsh根目录优先于.agents):如果某个 skill 名称已存在于更高优先级的根目录中,则跳过链接。请将占位符替换为真实的 skill 名称;尖括号不是 shell 语法。~/.dsh -
Hooks 通过第一方 bridge 接入。 从标准 ECC hooks 文件生成 DSH 格式配置:bash
node scripts/dsh/generate-hooks-config.js --ecc-root /path/to/ECC --out ~/.dsh/ecc/hooks-dsh.json生成器会将工具名称 matchers 转为小写,在命令中内联添加/CLAUDE_PLUGIN_ROOT前缀(bridge 不会导出 plugin root),保留超时设置,并跳过 DSH 无法通过 bridge 桥接的事件:ECC_PLUGIN_ROOT、PreCompact、PostToolUseFailure。SessionEnd -
使用裸 insert 进行挂载,写入:
~/.dsh/profiles/<profile>/cordis.patch.ymlyaml- insert: - id: ecc-hooks-claude-code name: "@deepseek-ai/dsh-hooks-claude-code" config: configPath: /absolute/path/to/hooks-dsh.json以下 loader 规则很容易在排查问题时浪费时间:普通的顶层条目会被静默丢弃;在已有的非 group id 下使用- id:会被拒绝并提示“not a group”;第一方 plugin packages 无需在 profile 的insert中添加条目。package.json -
先通过 Compose 验证,再进行实时验证。bash
cd ~/.dsh && dsh --profile web --dump-config > /tmp/dump.yml grep ecc-hooks /tmp/dump.yml即使 loader 丢弃或拒绝某个条目,Compose 的退出状态仍会保持为 0——这些问题只会报告到 stderr。确认 dump 中出现该条目 id,并且 stderr 为空。Session 首次执行 edit/write/bash 时出现 GateGuard 拒绝,是 bridge 已生效的可见信号。
Updating
更新
git pull执行 后,更新会立即反映到已链接的 skills 中;使用相同的生成器命令重新生成 hooks 配置。如果 ECC checkout 路径发生变化,请重新生成配置(每条 hook 命令中都嵌入了该路径),并重新链接 skills。
git pullLimits
限制
| Surface | Status on DSH |
|---|---|
| Skills | Native discovery; workflows may require host adaptation |
| Hooks | 23 command hooks on 5 of 7 bridge events |
| Slash commands | Not available (Claude Code mechanism); workflows covered by skills |
| Agents | Native 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.
| 功能 | DSH 上的状态 |
|---|---|
| Skills | 原生 discovery;workflows 可能需要适配 host |
| Hooks | 23 个 command hooks,覆盖 7 个 bridge events 中的 5 个 |
| Slash commands | 不可用(Claude Code 机制);workflows 由 skills 覆盖 |
| Agents | 原生 dispatch 尚未验证;仅应在 review 后使用标准 prompt guidance |
此处验证过的设置面向 CLI/web profile。Desktop profiles 配有独立的、由 installation 管理的 runtime,必须单独验证其 skill discovery。仅从经过 review 的 ECC checkout 生成 hooks;所链接的 checkout 将提供其 runtime。