Bundle
dsh-project-skill-paths
Project-scoped custom SKILL roots for DeepSeek Harness
- Source
- NeoRrrr
- License
- MIT
- Updated
- Updated 4 days ago
Readme
# DSH Project Skill Paths
Project-scoped custom Skill roots for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). The plugin finds the nearest Git project for each session `cwd`, reads `.dsh/skill-paths.yaml`, and adds those directories to that project's Skill discovery.
[中文说明](README.zh.md)
## Features
- Configure any number of project-relative Skill roots.
- Add and remove paths from the DSH Desktop settings card.
- Use `.` to target the current DSH workspace or select a project directory.
- Reload changes to `.dsh/skill-paths.yaml` without restarting DSH.
- Reject absolute paths and `..` paths outside the project by default.
- Keep every project's configuration inside that project.
## Install
Install the tagged GitHub release into the Desktop profile:
```powershell
dsh plugin --profile desktop add github:NeoRrrr/dsh-project-skill-paths#v0.3.0
```
Alternatively, download the prebuilt `dsh-project-skill-paths-0.3.0.tgz` asset from the [v0.3.0 release](https://github.com/NeoRrrr/dsh-project-skill-paths/releases/tag/v0.3.0), then install it locally:
```powershell
dsh plugin --profile desktop add .\dsh-project-skill-paths-0.3.0.tgz
```
Restart DSH Desktop after the initial installation. The plugin requires DSH `>=0.1.1-rc.2` and Node.js `^22.19.0 || >=24.0.0`.
## Configure a project
Open **Settings → Plugins → Plugin configuration → Project Skill Paths**. Enter `.` for the current DSH workspace or select a project directory, then add or remove Skill roots and save.
The settings card writes this file at the detected Git project root:
```yaml
# .dsh/skill-paths.yaml
version: 1
skillPaths:
- .codex/skills
- tools/AI/claude/skills
```
Each entry is resolved relative to the project root. A Skill root may contain either `<skill-name>/SKILL.md` or `<skill-name>.md`, following the built-in DSH filesystem provider's naming and frontmatter rules.
## Safety and scope
The plugin reads Skill files only while DSH resolves Skills for a session. It writes only the selected project's `.dsh/skill-paths.yaml` when you save the settings card. It does not read credentials, make outbound network requests, or modify Codex configuration.
By default, absolute paths and paths that escape the project are rejected. To explicitly allow shared paths outside a project, override the plugin row in the profile's `cordis.patch.yml`:
```yaml
- id: project-skill-paths
config:
allowExternalPaths: true
```
DSH patch configuration replaces the row's complete `config` value rather than deep-merging it.
## Priority and reload behavior
Configured paths use rank `250`. Built-in project roots remain ahead of them, while configured project paths take precedence over global and user-level roots with the same Skill name:
| Source | Rank |
| --- | ---: |
| `<project>/.dsh/skills` | 100 |
| `<project>/.agents/skills` | 200 |
| This plugin's configured roots | 250 |
| Global `customSkillDirs` | 300 |
| User-level roots | 400/500 |
The plugin watches the project YAML file for creation, changes, and deletion. Skill directory contents continue to use DSH's built-in filesystem watcher.
## Development
```powershell
npm install
npm run check
npm pack --dry-run
```
For local development, install a link into a separate DSH profile:
```powershell
dsh plugin --profile desktop add "link:$PWD"
```
## Uninstall
```powershell
dsh plugin --profile desktop remove dsh-project-skill-paths
```
## License
[MIT](LICENSE)
Install
dsh plugin --profile web add github:NeoRrrr/dsh-project-skill-paths
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-project-skill-paths from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.