DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-stop-that-shit

h

dsh-stop-that-shit

Discovered

Unofficial DeepSeek Harness (DSH) adapter for Stop That Shit: two skills, /sts, and a per-session tool-call contract (deny/ask).

dsh-stop-that-shit

ci

把 Stop That Shit 的判定引擎接进 DeepSeek Harness: 两个 Skill、一个 /sts 命令、以及每次工具调用前的契约检查(deny / ask / 放行)。

非官方。 这是第三方 DSH 适配层,不是上游项目的官方发行版。判定引擎(vendor/)与 skills/ 原样取自上游(MIT),本地改动只有 VENDOR.md 记录的那一处。

它做什么

  • 未武装的会话全部放行。只有你显式写下契约,检查才开始生效。
  • 契约按根会话记账:子会话、孙会话都按根的契约判定,不会因为委派而跳出边界。
  • 拒绝是真正的工具拒绝:模型拿到 Error: STOP / …,不是你跟它商量。
  • 依赖安装可以变成审批卡(deps=ask),而不是一刀切拒绝。
能力实现
Skillsstop-that-shit、stss 经 ctx.skills.register() 进入技能目录
/stsctx.commands.register();只武装,或武装后转发任务
Guardtools/pre-execute 返回 deny / ask / 放行
审计每次判定写 ~/.dsh/stop-that-shit/runtime/<hash>.jsonl
委派预算agents=N 按根会话记账,subagent / subagent_fork / workflow 都计入

快速开始

要求:DSH Desktop(或 dsh CLI)>= 0.2.1-rc.2,Node >= 22。装完开新会话生效。

A. 插件页(推荐) — 侧边栏 → 插件 → 安装,填:

github:hua2003-liu/dsh-stop-that-shit

B. CLI 一行:

dsh plugin --profile <profile> add github:hua2003-liu/dsh-stop-that-shit

dsh plugin add 会把依赖写进 profile 并同时启用 bundle(已验证)。用别的 profile 测试时, <profile> 换成名字即可;desktop 归 Desktop 应用管理,装它请走插件页或 plugin_manager。

C. 本地目录(开发时,或离线安装):

dsh plugin --profile <profile> add C:\path\to\dsh-stop-that-shit

离线的做法是下载 Releases 里的 dsh-stop-that-shit-<version>.tgz 并解压,再把解压出的目录按上一行安装。

30 秒验证装好了

# 技能是否进了目录:应该能看到 stop-that-shit 和 stss
dsh --profile <profile> headless 'List the exact names of every skill in your skill catalog, one per line.'

# 只读契约是否可以真的挡住写
dsh --profile <profile> headless '$stop-that-shit review -- deliberately try to create proof.txt, then report the denial text'

第二条应当报 STOP / INTENT + MODE_FORBIDS_MUTATION,并且 proof.txt 不存在。

用法

/sts review -- Read this diff, report problems, change nothing.
/sts change files=src/** -- Add the parser.
/sts change deps=ask hash=allow -- Add the dependency I just asked for.
/sts status

也可以继续用上游的 prompt 指令,必须是消息的第一个非空行:

$stop-that-shit change files=src/** -- implement the parser
字段取值默认
modeanswer review monitor change watchunconfirmed(只走 Stop Ladder,不构成完整契约)
levelwatch guard lock offwatch
files=a/**|b,** 表示全树不限边界
deps=allow ask denyask
hash=allow ask denydeny
agents=非负整数不限

-- 之后是任务正文;正文里不要再写指令。

判定结果

契约状态工具调用模型看到
未武装全部放行无异常
review 里的写denyError: STOP / INTENT + MODE_FORBIDS_MUTATION
files= 之外denyError: STOP / SCOPE + PATH_OUTSIDE_CONTRACT
deps=deny 的安装denyError: STOP / SCOPE + DEPENDENCY_NOT_AUTHORIZED
deps=ask 的安装ask弹出 DSH 审批卡;无人可批时按拒绝处理
根会话不可达deny(fail-closed)要求先解析完整 lineage

事件映射

DSH 事件用途
agent/pre-step从可信用户消息里解析指令,并把契约摘要折进本步消息
tools/pre-execute判定每次调用:deny / ask / next()
tools/post-execute观察结算结果,更新委派账本
session/created / session/disposed初始化 / 结束会话状态
subagent/start / subagent/end委派预留与释放

root lineage:header.parentSession 只给直接父;插件一路回溯到无父会话,回溯不了就 fail-closed 拒绝, 不拿中间子会话冒充根。

状态与审计

~/.dsh/stop-that-shit/sessions/<hash>.json   # 每个会话的契约与委派账本
~/.dsh/stop-that-shit/runtime/<hash>.jsonl   # 每次判定的事件流(JSONL)

<hash> 是根会话 id 的短哈希。删掉这个目录即重置全部契约。dataDir 可以在 patch 的 config 里覆盖。

配置

# profile 的 cordis.patch.yml
- id: sts
  config:
    dataDir: ''              # 默认 ~/.dsh/stop-that-shit
    runCodeBindingOnly: false # 见「已知限制」

已知限制

  • 不是安全边界。真正的隔离是 DSH 的 fs sandbox / 权限预设;这里是任务边界护栏。
  • run_code(PTC):程序体可以直接 import('node:fs') 写文件,只有嵌套的 tools.* 调用会被逐个判定。默认把 run_code 记为 unknown 走审批;只有能证明运行时被约束时 才把 runCodeBindingOnly 设为 true。
  • shell 写目标未证明:mkdir src/x、echo > src/x 这类命令在 files= 边界下可能被判 WRITE_PATH_UNPROVEN(要求审批)。上游的 shell 写目标修复尚未合入本仓库的 vendor。
  • 审计里的 ask:记成 denial response(controller 的响应枚举没有 approval 值)。
  • 审批卡依赖宿主:headless 这类没有审批通道的宿主会把 ask 降级为拒绝,这是 DSH 的既定行为。

排障

现象检查
新会话看不到 skill确认 bundle 已启用:dsh --profile <p> --dump-config 里应有 id: sts
装了但没生效新装 bundle 走 HMR 会即时激活;替换已装的包需要重启进程
dsh plugin add 报 EPERM ... renameprofile 的 node_modules 里残留了旧链接;删掉该目录后重试
审批卡不弹宿主没有审批通道,或 deps= 不是 ask;用 /sts status 看当前契约
拒绝原因是 WRITE_PATH_UNPROVENshell 命令的写目标无法证明,改用 write/edit 工具或放宽边界

开发

npm test          # node test/plugin.test.cjs(10 项断言)
npm run check     # 语法检查
npm run update-vendor

许可

本仓库的胶水代码 MIT。vendor/ 与 skills/ 来自上游 MIT,见 NOTICE.md 与 vendor/UPSTREAM-LICENSE。

上游:https://github.com/lennney/stop-that-shit

Comments

Loading…

Similar plugins

dsh-preset-tool-guard

by KouzakiUmi

DeepSeek Harness 插件:按 Agent preset 限制每个 Agent 可见的工具,保留全局 provider 挂载;基于 agent/created 与 ctx.tools.restrict()。

Manifest valid

★ 0

MIT

JavaScript

Oct 19, 2026

dsh plugin --profile web add dsh-preset-tool-guard

by gorban

DeepSeek Harness (dsh) plugin: stop a running background job from the session-header job list, behind a confirmation dialog.

UI & ExperienceDevelopment & InfrastructureTerminal & ClientsManifest valid

★ 1

↓ 276/wk

MIT

TypeScript

Sep 20, 2026

dsh plugin --profile web add @gorban/dsh-job-stop

by kiterunner1

DSH 插件:任务结束或命令卡死时用本机人声提醒,自动中断卡住的 pwsh 调用并把「怎么继续」写回工具结果,并在 spawn 之前拦掉已知的性能陷阱写法。仅 Windows。 / Beeps + stuck-command watchdog + command guard for DeepSeek Harness. Windows only.

Manifest valid

★ 0

MIT

JavaScript

Sep 15, 2026

dsh plugin --profile web add dsh-attention-beep

by tianyaojiudi-prog

DSH(DeepSeek Harness) 插件:把一段可在设置页随时改写的文字,作为全局系统提示词段注入到所有会话,含子代理与工作流内部子代理;文本与开关即时生效,无需重启。

Tools & CapabilitiesManifest valid

★ 9

MIT

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-djy-xttsc

by andrepontesmelo

The DSH productivity suite: plugins + agent skills for the DeepSeek Harness, installable in one command.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Sep 11, 2026

dsh plugin --profile web add @andrepontesmelo/dsh-suite

by sjh9714

Observe identical tool failures and optionally pause the next model step in DeepSeek Harness.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 0

MIT

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-retry-guard