Mode d’emploi
- Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
- Consultez le document original pour les outils, identifiants et environnements requis.
- Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/affaan-m/ecc --skill deepseek-harness-setupAvant de commencer
- L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
- Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
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
- Skills need no conversion. DSH reads
SKILL.mdfrontmatter
(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.
- 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.jsonThe 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.
- 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.jsonLoader 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.
- Validate by composing, then verify live.
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.
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
| 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.


