# DSH Project Skill Paths 为 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 增加**项目级自定义 Skill 根目录**。插件根据每个会话的 `cwd` 查找最近的 Git 项目,读取项目内的 `.dsh/skill-paths.yaml`,并只把其中的目录加入该项目的 Skill 发现结果。 [English](README.md) ## 功能 - 为每个项目配置任意数量的相对 Skill 根目录。 - 在 DSH Desktop 设置卡片中添加、修改和删除路径。 - 用 `.` 代表当前 DSH 工作区,也可以选择项目目录。 - `.dsh/skill-paths.yaml` 变更后自动刷新,无需重启 DSH。 - 默认拒绝绝对路径以及通过 `..` 跳出项目的路径。 - 每个项目的配置都保存在项目自身目录内,互不影响。 ## 安装 把固定版本的 GitHub Release 安装到 Desktop profile: ```powershell dsh plugin --profile desktop add github:NeoRrrr/dsh-project-skill-paths#v0.3.0 ``` 也可以从 [v0.3.0 Release](https://github.com/NeoRrrr/dsh-project-skill-paths/releases/tag/v0.3.0) 下载预构建的 `dsh-project-skill-paths-0.3.0.tgz`,再本地安装: ```powershell dsh plugin --profile desktop add .\dsh-project-skill-paths-0.3.0.tgz ``` 首次安装后重启 DSH Desktop。插件要求 DSH `>=0.1.1-rc.2`,Node.js `^22.19.0 || >=24.0.0`。 ## 配置项目 打开 **设置 → 插件 → 插件配置 → 项目 Skill 路径**: 1. 输入 `.` 使用当前 DSH 工作区,或选择一个项目目录; 2. 添加、修改或删除相对项目根的 Skill 目录; 3. 点击“保存项目配置”。 设置卡片会在识别出的 Git 项目根写入: ```yaml # .dsh/skill-paths.yaml version: 1 skillPaths: - .codex/skills - tools/AI/claude/skills ``` 每一项都按项目根解析。Skill 根目录可以包含 `/SKILL.md`,也可以包含 `.md`;名称和 frontmatter 继续遵循 DSH 自带文件系统提供方的规则。 ## 安全边界 插件只在 DSH 为会话查找 Skill 时读取 Skill 文件;只有你在设置卡片中点击保存时,才会写入所选项目的 `.dsh/skill-paths.yaml`。它不会读取凭据、发起外部网络请求,也不会修改 `%USERPROFILE%\.codex` 中的任何配置。 默认拒绝绝对路径以及跳出项目的路径。如果确实需要共享的外部目录,可以在 profile 的 `cordis.patch.yml` 中显式覆盖插件行: ```yaml - id: project-skill-paths config: allowExternalPaths: true ``` 注意:DSH patch 会替换该行的整个 `config`,不是深度合并。 ## 优先级与热更新 项目配置路径使用 rank `250`: | 来源 | Rank | | --- | ---: | | `/.dsh/skills` | 100 | | `/.agents/skills` | 200 | | 本插件配置的路径 | 250 | | 全局 `customSkillDirs` | 300 | | 用户级目录 | 400/500 | 因此项目标准目录仍然优先,本插件路径会覆盖全局和用户目录中的同名 Skill。 插件会监视 `.dsh/skill-paths.yaml` 的创建、修改和删除;具体 Skill 目录继续由 DSH 自带 watcher 监视。 ## 开发与验证 ```powershell npm install npm run check npm pack --dry-run ``` 本地开发时可以安装目录链接: ```powershell dsh plugin --profile desktop add "link:$PWD" ``` ## 卸载 ```powershell dsh plugin --profile desktop remove dsh-project-skill-paths ``` ## 许可证 [MIT](LICENSE)