From 3756908464be31a7901ba7703475237dd602d0b5 Mon Sep 17 00:00:00 2001 From: phungthien269 Date: Fri, 2 Oct 2026 00:26:01 +0700 Subject: [PATCH] feat: register DeepSeek Harness in the adapter compliance matrix - Add deepseek-harness record (Adapter-backed) to ADAPTER_RECORDS with onramp, verification commands, risk notes, and source docs | - Regenerate the matrix block in docs/architecture/harness-adapter-compliance.md via the renderer | - Addresses the Harness-compatibility reference gap flagged by the ecc-tools Reference Set Readiness check on PR #3309 --- .../harness-adapter-compliance.md | 1 + scripts/lib/harness-adapter-compliance.js | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/docs/architecture/harness-adapter-compliance.md b/docs/architecture/harness-adapter-compliance.md index 09061190d..b7f8c2b55 100644 --- a/docs/architecture/harness-adapter-compliance.md +++ b/docs/architecture/harness-adapter-compliance.md @@ -44,6 +44,7 @@ The matrix below is rendered from | Gemini | Instruction-backed | Gemini project-local instructions; shared skills; rules; compatibility docs | No full ECC hook parity; ecosystem ports must document drift from upstream ECC | `./install.sh --profile minimal --target gemini` | `node tests/lib/install-targets.test.js` | Treat Gemini ports as ecosystem adapters until validated end to end inside Gemini CLI. | | Zed | Adapter-backed | Zed project settings; flattened project rules; shared skills; commands; agents | Zed external agents and native Agent Panel permissions are not Claude hooks | `./install.sh --profile minimal --target zed` | `node tests/lib/install-targets.test.js`; `npm run harness:audit -- --format json` | Keep project settings conservative and do not copy BYOK/OpenRouter secrets into `.zed/`. | | dmux | Adapter-backed | session snapshots; tmux/worktree orchestration status; handoff exports | dmux is an orchestration runtime, not an install target for skills/rules | `node scripts/session-inspect.js --list-adapters`; dmux session target inspection | `node tests/lib/session-adapters.test.js` | Treat dmux events as session/runtime signals, not as a replacement for repo validation. | +| DeepSeek Harness | Adapter-backed | canonical ECC skills (skills/) via native DSH skill roots; command hooks through the first-party @deepseek-ai/dsh-hooks-claude-code bridge (20 commands on 4 of 7 bridged events); hooks config generator (scripts/dsh/generate-hooks-config.js); profile patch mounting with compose-time validation | Claude slash commands and ECC subagent surfaces have no DSH equivalent; workflows are covered by skills; PreCompact, PostToolUseFailure, and SessionEnd hook events have no bridge counterpart; no dedicated installer target; setup is documented manual configuration | link the curated catalog: ln -s /path/to/ECC/skills/ ~/.dsh/skills/; generate the hooks config: node scripts/dsh/generate-hooks-config.js --ecc-root /path/to/ECC --out ~/.dsh/ecc/hooks-dsh.json; mount a bare - insert: entry for @deepseek-ai/dsh-hooks-claude-code in ~/.dsh/profiles//cordis.patch.yml | `node tests/scripts/dsh-generate-hooks-config.test.js`; `node scripts/ci/validate-skills.js`; `dsh --profile --dump-config` (compose-time validation) | Hook commands embed the ECC checkout path; regenerate the hooks config after moving the repo; Keep the tool-name matcher mapping (Bash to bash, Edit/MultiEdit to edit) in sync with DSH tool names; A plain top-level patch entry is silently dropped; additions require a bare insert entry | | Orca | Reference-only | worktree lifecycle; review state; notification; provider-identity design pressure | No ECC installer or direct adapter today | Use as a comparison target for worktree/session state requirements | `npm run observability:ready` | Do not import product-specific assumptions; convert lessons into ECC event fields. | | Superset | Reference-only | workspace presets; parallel-agent review loops; worktree isolation design pressure | No ECC installer or direct adapter today | Use as a comparison target for workspace preset taxonomy | `npm run observability:ready` | Keep ECC portable; do not require a desktop workspace to get basic value. | | Ghast | Reference-only | terminal-native pane grouping; cwd grouping; search; notifications | No ECC installer or direct adapter today | Use as a comparison target for terminal-first session grouping | `node scripts/session-inspect.js --list-adapters` | Preserve terminal ergonomics before adding visual UI assumptions. | diff --git a/scripts/lib/harness-adapter-compliance.js b/scripts/lib/harness-adapter-compliance.js index e1aafd752..1bf863a9b 100644 --- a/scripts/lib/harness-adapter-compliance.js +++ b/scripts/lib/harness-adapter-compliance.js @@ -254,6 +254,45 @@ const ADAPTER_RECORDS = Object.freeze([ 'tests/lib/session-adapters.test.js', ], }, + { + id: 'deepseek-harness', + harness: 'DeepSeek Harness', + state: 'Adapter-backed', + supported_assets: [ + 'canonical ECC skills (skills/) via native DSH skill roots', + 'command hooks through the first-party @deepseek-ai/dsh-hooks-claude-code bridge (20 commands on 4 of 7 bridged events)', + 'hooks config generator (scripts/dsh/generate-hooks-config.js)', + 'profile patch mounting with compose-time validation', + ], + unsupported_surfaces: [ + 'Claude slash commands and ECC subagent surfaces have no DSH equivalent; workflows are covered by skills', + 'PreCompact, PostToolUseFailure, and SessionEnd hook events have no bridge counterpart', + 'no dedicated installer target; setup is documented manual configuration', + ], + install_or_onramp: [ + 'link the curated catalog: ln -s /path/to/ECC/skills/ ~/.dsh/skills/', + 'generate the hooks config: node scripts/dsh/generate-hooks-config.js --ecc-root /path/to/ECC --out ~/.dsh/ecc/hooks-dsh.json', + 'mount a bare - insert: entry for @deepseek-ai/dsh-hooks-claude-code in ~/.dsh/profiles//cordis.patch.yml', + ], + verification_commands: [ + '`node tests/scripts/dsh-generate-hooks-config.test.js`', + '`node scripts/ci/validate-skills.js`', + '`dsh --profile --dump-config` (compose-time validation)', + ], + risk_notes: [ + 'Hook commands embed the ECC checkout path; regenerate the hooks config after moving the repo', + 'Keep the tool-name matcher mapping (Bash to bash, Edit/MultiEdit to edit) in sync with DSH tool names', + 'A plain top-level patch entry is silently dropped; additions require a bare insert entry', + ], + last_verified_at: '2026-10-02', + owner: 'ECC maintainers', + source_docs: [ + 'docs/DEEPSEEK-HARNESS-GUIDE.md', + 'skills/deepseek-harness-setup/SKILL.md', + 'scripts/dsh/generate-hooks-config.js', + 'tests/scripts/dsh-generate-hooks-config.test.js', + ], + }, { id: 'orca', harness: 'Orca',