Max-Null/dsh-guardian1

@max-null/dsh-guardian

Guardian state engine for the DeepSeek Harness — assertion counting, edit review queue, and no-feedback-loop monitoring over session events

包名
@max-null/dsh-guardian
版本
0.2.0
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Max-Null/dsh-guardian

@max-null/dsh-guardian

本插件属于 @max-null/* 插件系列——这一系列共同构成 SSID(思灵 · Seek Soul in Darkness) 桌面体验。SSID 是整合它们的盒:dsh-capture · dsh-chat-rail · dsh-chinese-thinking · dsh-draft-polish · dsh-guardian · dsh-habit · dsh-memory · dsh-node-appearance · dsh-plugin-center · dsh-quick-toolbar · dsh-skill-mcp-center · dsh-ssid-panels · dsh-ssid-zh-ui · dsh-achievements

This plugin belongs to the @max-null/* family — a set of plugins that together form the SSID (思灵 · Seek Soul in Darkness) desktop experience.

Guardian state engine for the DeepSeek Harness — three trigger-line monitors over session events, with live reminder injection and a UI snapshot service.

M2 of SSiD (思灵), ported from fractal's guardian: assertion counting, the edit review queue, and no-feedback-loop monitoring.

What it monitors

Trigger lineRule
Assertion countScans assistant messages for unverified claims (不支持/做不到/只有 N 种/不存在/无法 X/远低于/过于 X). Counts per session, decays by 1 every 3 clean turns, segments into levels [1,3]+.
Edit review queueSuccessful write/edit tool calls enqueue {filePath, sessionId, turn}. FIFO cap 20, dedup per file+session. Reminder lists them at turn end.
No-feedback loopPer turn: edits without bash/pwsh increment the counter; any exec resets it. 3 consecutive edit-only turns inject a "build a feedback loop first" warning.

截图

本插件是会话行为监控类:不新增任何按钮、面板或设置项。它在会话过程中维护断言计数、编辑审查队列与「无反馈环」监测,效果体现在模型行为的约束上。

按《SSiD 开发手册》§9 截图规范:截图须回答「装完会多出/变成什么」的入口与面板。 本插件无界面元素(no UI surface),故不适用该项要求,改以上述行为效果说明代替。

Compose

# cordis.yml (or via the bundle patch):
- id: guardian
  name: '@max-null/dsh-guardian'

Requires storage, system-prompt in the host composition (dsh-base ships both). Installs as a bundle: dsh plugin --profile add @max-null/dsh-guardian.

Services

  • ctx.guardian — the engine:
    • snapshot(){ session, reviewQueue } for UI panels
    • sessionState(sessionId) → per-session state
  • Three dynamic systemPrompt.context reminders (guardian:assertion, guardian:no-feedback, guardian:review), evaluated per assembly from the most recently active session.

Config

FieldDefaultMeaning
decayTurns3Clean turns before one assertion point decays
assertionThresholds[1, 3]Ascending thresholds segmenting levels 1-3
noFeedbackThreshold3Consecutive edit-only turns before the warning
reviewQueueMax20Review queue FIFO cap
globalRoot$DSH_HOME/storages/guardianJSON storage root

Storage

One JSON unit (guardian, version 1) under $DSH_HOME/storages/guardian: sessions table (per-session state) + the global slot (review queue). In-memory is authoritative during a run; state flushes at turn end.

Develop

npm install --legacy-peer-deps   # DSH peer types resolve via tsconfig paths
npm test                         # vitest: 27 pure-function tests
npm run typecheck                # tsc against adjacent deepseek-harness lib/types
npm run build                    # emit dist/

The npm registry carries unsynchronized DSH rc versions, so dev tooling resolves @deepseek-ai/* types through tsconfig.json paths pointing at an adjacent deepseek-harness checkout (../deepseek-harness). Runtime peer resolution is unaffected — the host composition supplies the real packages.

SSID 系列