Bryan-cmf
dsh-skill-gate
DSH-Plugin: skill trigger/selection gate - user picks from described candidates when the model triggers a skill; 10s no-choice falls back to the system default.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
🚪 Skill Gate — DSH-Plugin
技能觸發與選擇閘門:系統按關鍵詞觸發技能時,把候選技能(含描述)交給用戶選擇;10 秒內未選擇 → 自動使用系統默認。
A DeepSeek Harness host plugin that gives the user the final say over which skill the agent uses.
How it works
- The model triggers a skill (
skilltool call, keyword-driven as usual). tools/executewaterfall intercepts the dispatch and opens the native question UI: 系統建議的技能 + 其他候選技能,每項帶描述。- User picks → the original call is short-circuited with an explanatory result, and a synthetic instruction is injected so the model loads the chosen skill instead.
- No answer within
timeoutMs(default 10s) → the system default (the requested skill) proceeds untouched.
🧠 技能選擇
系統將使用技能「ak-hk-stock-dd」。要改用其他技能嗎?
(10 秒內未選擇將自動使用「ak-hk-stock-dd」)
[ak-hk-stock-dd] 系統建議(預設)
[serenity-skill] 供應鏈瓶頸投資研究方法論
[dcf-valuation] Discounted cash flow valuation…
Install
Path A — Host composition (recommended)
"dsh": { "profile": { "bundles": ["@bryan-cmf/dsh-skill-gate"] } }
Path B — Agent preset row
- id: skill-gate
name: '@bryan-cmf/dsh-skill-gate'
Requirements
- DSH
>= 0.1.0-rc.6(services:skills,userQuestions,timer; all in the shippeddsh-basebundle —userQuestionsneeds the browser UI)
Configuration
| Key | Default | Meaning |
|---|---|---|
enabled | true | Master switch |
timeoutMs | 10000 | User decision window; on expiry the system default applies |
maxCandidates | 5 | Max options offered (includes the system default) |
Design notes
- One gate at a time: a second skill call while a question is open passes through untouched (no stacked questions).
- No userQuestions provider (headless) → the gate passes everything through.
- The override is delivered through the sanctioned
agent.inject()synthetic user-message channel, so the model's next step loads the chosen skill. - Companion:
@bryan-cmf/dsh-infra-observabilityrecords every gate outcome as ordinary tool usage.
Development
pnpm install --store-dir .pnpm-store
pnpm build
License
MIT