Yubickari/dsh-semantic-drift ↗★ 0
dsh-semantic-drift
One versioned vocabulary of a project's business concepts, a read-only drift scan, and the same naming rules in every agent prompt. A DSH plugin. 适合需要统一项目命名规范并在提示词中注入词汇表的团队。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yubickari/dsh-semantic-driftREADME
Read the full README ↗Configuration
The panel configures how it looks and behaves; the project configures what is scanned and which file is the vocabulary.
| Field | Default | Meaning |
|---|---|---|
vocabularyPath | .dsh/semantics.yaml | vocabulary file, relative to the workspace root |
announceToAgent | true | inject the vocabulary section into agent prompts |
citationStyle | file+symbol | path/File.cs::Symbol or path/File.cs:123 |
minConfidence | medium | lowest confidence the tools report; the panel receives every level |
timeoutMs | 30000 | wall-clock budget for one scan |
maxFindings | 5000 | hard cap per scan |
maxFileBytes | 1048576 | larger files are skipped and counted |
maxFiles | 50000 | hard cap on files visited |
detectors | all four | which detectors a scan runs |
Every field in this table is plugin-row configuration, and all of it except
announceToAgent is edited in DSH: Plugins → Installed Plugins →
dsh-semantic-drift (the bundle) → Configuration. The plugin registers that page
into the plugins.bundle.config seat and brings the field table (from the
schemastery schema), the labels and the controls; the form itself — the values and
the writes — is DSH's own live config form, served by its configForms service under
this plugin's profile entry id, semantic-drift. The plugin keeps no save channel of
its own: the page posts nothing, GET /semantic-drift/config answers the field table
alone, and the values never travel over HTTP.
Every field here is volatile: the only kind DSH shows as editable, and the kind the Loader commits in place instead of unmounting the plugin row. A change is therefore in force from the next read — no save button, no reload, nothing to toggle off and on.
announceToAgent is the exception: it belongs to the panel's agent-prompt group, so
the Configuration block leaves it out. The panel writes it through the Host's config
editor — POST /semantic-drift/settings carries that one field and refuses a patch
— and because the field is volatile the prompt section stays registered and returns an
empty text while the switch is off: one click is the whole gesture, and the next prompt
assembly already reflects it.
Everything else in the panel's settings dialog is a browser preference kept in
localStorage — not in the vocabulary file, not in the plugin row.