douchu004/dsh-skill-triage ↗★ 0

dsh-skill-triage

Skill triage gate for DeepSeek Harness: on a trigger word (default @skill) or every turn, search the installed skill catalog, require an explicit use/skip decision per candidate, and block other tools until every chosen skill is loaded.

包名
dsh-skill-triage
兼容性
待验证
版本
0.2.0
许可证
MIT
最近更新
2026年10月28日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:douchu004/dsh-skill-triage

配置

写在 profile 的 cordis.patch.yml(或插件自己的 cordis.patch.yml)里,例如:

- insert:
    - id: skill-triage
      name: dsh-skill-triage
      config:
        triggerMode: keyword
        triggerWords: ['@skill', '找技能']
        maxCandidates: 6
        requiredScore: 3
字段默认含义
enabledtrue总开关。关掉后不注入、不拦截,只保留 skill_triage 工具
triggerModekeywordkeyword=出现触发词才介入;always=每轮都介入
triggerWords["@skill","找技能"]触发词,大小写不敏感的子串匹配;空数组=永不触发
minScore1.6候选进入分诊的最低相关度
requiredScore3标记「强匹配」的阈值(强匹配如果不用,理由必须写实)
maxCandidates6一次最多列几个候选(1–20)
maxDenials4同一轮连续拒绝多少次后自动解禁(fail-open)
announceNoMatchtrue没有候选时也回一句「已检索、无匹配」
promptSectiontrue在系统提示词里加一段稳定契约
steerUntriagedtrue未分诊就想收轮时 steer 一次
diagnosticstrue写诊断日志
diagnosticsPath''默认 ~/.dsh/logs/skill-triage.log
promptExcerptChars0日志里保留多少字需求原文(默认不落原文)
verifySkillPathsfalse是否用 existsSync 复查候选的 SKILL.md 路径(内置 office skill 在 app.asar 里,普通进程看不到,默认不查以免误杀)
excludeSkills[]永不参与分诊的 skill 名
excludeProviders[]永不参与分诊的 provider
allowTools["skill","ask_user_question","todo_write"]门禁期间仍放行的工具

诊断日志是一行一条 JSON:apply / pre-step(候选与命中词)/ triage(use 与 skip 理由)/ fail-open / steer / error,只保留最近 400 行。它同时是一份审计记录:谁在哪一轮用了哪些 skill、以什么理由弃用了哪些。