dsh-project-skill-paths
开发工具 活跃维护

dsh-project-skill-paths

NeoRrrr/dsh-project-skill-paths

支持项目级自定义技能根路径配置,可按项目维度独立设置专属技能根目录,实现不同项目的技能资源隔离,无需全局配置即可灵活适配各项目的个性化功能需求。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
62 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:NeoRrrr/dsh-project-skill-paths
git clone https://github.com/NeoRrrr/dsh-project-skill-paths.git
git clone git@github.com:NeoRrrr/dsh-project-skill-paths.git
README.md main

DSH Project Skill Paths

Project-scoped custom Skill roots for 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.

中文说明

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:

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, then install it locally:

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:

# .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:

- 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

npm install
npm run check
npm pack --dry-run

For local development, install a link into a separate DSH profile:

dsh plugin --profile desktop add "link:$PWD"

Uninstall

dsh plugin --profile desktop remove dsh-project-skill-paths

License

MIT