DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Ops Conventions — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
O

dsh-ops-conventions

Ops Conventions

把「操作约定」在动手前确定性注入上下文:只在你这句话像要动手时才注入(闲聊零成本),同一会话同一约定版本只提醒一次,约定版本号(VERSION 文件)变化后自动再提醒一次;附带注入日志便于核对。用于解决「约定记了但干活时不提就不用」的问题。配合 OpenViking 使用:操作约定本身存在 OpenViking 技能里,本插件负责在动手前把它们提出来。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:HeliosTangDev/dsh-ops-conventions#a94316a8f9320d577bd41b12a0b074622593f54c
README兼容性版本

兼容性与来源证明

Ops Conventions 以 dsh-ops-conventions 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/19

版本

0.3.0stable
2026/10/19
0.2.2stable
2026/10/19
0.2.1stable
2026/10/18

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/19
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Scriptor@linfengqaqtat/dsh-scriptorWebnovel Writer:DSH 长篇网文写作工作台

README

操作约定注入(dsh-ops-conventions)

把「操作约定」在动手前确定性注入上下文,解决「约定记了但干活时不提就不用」的问题。

它做什么

  • 版本变化后下一轮就注入,不再等下一个操作轮:不按「像不像要动手」过滤,闲聊轮也会注入;每会话每版本只注入一次(约 70 token)。
  • 同一会话同版本只注入一次:不刷屏。
  • 约定版本变化自动再提醒:改 VERSION 后,下一轮(任何类型)会重新注入。
  • 注入日志:每次注入记一行(含选中的约定目录、索引是否存在),生效与否可核对。
  • 硬拦截(默认开):操作类轮次里,本会话还没 read 过 INDEX.md 时,write/edit 等写类工具会被直接拒绝,并提示先读索引;读过后本会话放行。闲聊轮次不拦;shell 默认不拦(可配置)。
  • 零配置可用:包内自带 skills/ 示例清单;也可以指向你自己的目录,或 OpenViking 里存的那份。

为什么会有这个插件

作者是一名 DSH 日常用户(学生,用 DSH + OpenViking 管理学习和工具工作流),遇到的问题很具体:

  • 把「写脚本前先看清单」「改文件前先备份」这类操作约定写进了 OpenViking 技能和记忆;
  • 但真正干活时,模型并不会稳定地主动去读它们——约定记了,干活时不提就不用,等于白记;
  • 靠提示词或 AGENTS.md 也不稳:要么每轮全量注入太费 token,要么模型想起来才看。

于是和 AI 助手一起做了这个小插件:每会话每版本注入一条极短的门铃(入口清单路径 + 版本号),约定版本一改,下一轮就重新出现——不等到「像要动手」的那一轮。后来发现「注入了也可能不执行」,就补了硬拦截:操作类轮次里没读索引前,写操作直接过不去。

关于代码:需求、取舍、验证由作者决定;具体实现是与 AI 助手协作完成的。

为什么公开:相信「约定记了但干活不提就不用」不是个例,才把它整理出来上传,希望能帮到有同样需求的人。如果你遇到同样的问题,欢迎直接拿去用,也欢迎把你的场景告诉我,一起改进。

安装

方式一:安装脚本(推荐,跨平台、零依赖)

git clone https://github.com/HeliosTangDev/dsh-ops-conventions.git
cd dsh-ops-conventions
node install.mjs                       # 默认装到 ~/.dsh/profiles/desktop
node install.mjs /path/to/profile      # 指定 profile
node install.mjs /path/to/profile --uninstall   # 卸载

它会:复制到 <profile>/node_modules/dsh-ops-conventions、在 package.json 的 dependencies 登记、把包名加进 dsh.profile.bundles(不加不会被加载)。

方式二:手动

  1. 把整个仓库复制到 <profile>/node_modules/dsh-ops-conventions;
  2. 编辑 <profile>/package.json:
    "dependencies": { "dsh-ops-conventions": "0.2.0" },
    "dsh": { "profile": { "bundles": [ ..., "dsh-ops-conventions" ] } }
    

注意:package.json 里必须有 dsh.bundle.patch 指向 cordis.patch.yml(本包已带)。缺了它,插件管理器会报「没有声明组合包」,且不会被加载。

装完

  • 热重载:DSH 插件页 → 找到 dsh-ops-conventions → 关掉再打开(改 skills/ 或配置时不用重启)。
  • 改的是代码(index.mjs / rule.mjs)时,关掉再打开不保证重新 import,重启 DeepSeek Harness 最稳。

配置

配置项环境变量默认说明
skillsDirDSH_OPS_CONVENTIONS_DIR包内 skills/约定目录,需含 INDEX.md;VERSION 可有可无
logFileDSH_OPS_CONVENTIONS_LOG~/.dsh/ops-conventions/ops-conventions.log注入 / 拦截日志
enforce—true是否启用硬拦截;false = 只注入门铃
blockedTools—write edit multi_edit apply_patch notebook_edit拦截的写类工具名;要连 shell 一起拦就自行加 bash / pwsh

解析顺序(会逐个检查目录里真的有 INDEX.md,取第一个有效的):

  1. 配置项 skillsDir
  2. 环境变量 DSH_OPS_CONVENTIONS_DIR
  3. 包内 skills/(随包发布,开箱即用)
  4. OpenViking 实际存储:~/.openviking/data/viking/default/user/default/memories/ops-conventions
  5. ~/.dsh/ops-conventions/skills

示例(写进 profile 的 cordis.patch.yml):

- id: dsh-ops-conventions
  name: "dsh-ops-conventions"
  config:
    skillsDir: "D:/my-conventions/skills"
    enforce: true
    # blockedTools: ["write", "edit", "bash"]

约定目录结构

skills/
├── INDEX.md          # 入口清单(注入文本里给的就是它的路径)
├── VERSION           # 版本号;改它 → 下一次操作轮重新注入
└── ops-scripts/
    └── SKILL.md      # 各类清单,INDEX.md 里引用

自带 6 类示例:ops-scripts(脚本/后台)、ops-notes(笔记)、ops-files(文件目录)、ops-check(自检)、ops-longtask(长任务)、ops-dsh(DSH/插件)。可以直接改成你自己的。

机制

  • 监听 agent/pre-step(waterfall),在模型调用前判断最后一条用户消息像不像"要动手"(工具词 或 动作词+对象词)。
  • 命中且该会话该版本未注入过 → 追加一条 instructions 来源的消息。
  • 硬拦截监听 tools/pre-execute(waterfall):当轮用户消息像要动手、且本会话还没成功 read 过 INDEX.md 时,对写类工具返回 deny(理由里带索引绝对路径),模型照做后重试即可通过;tools/result 观察成功的 INDEX 读取后放行。
  • 钩子自身异常一律 fail-open(放行)并写日志;skillsDir 里没有 INDEX.md 时不拦。
  • 任何异常都吞掉,不影响正常对话;多会话各自独立判断。
  • 日志里可核对:inject vN、guard deny、guard index-read、guard loaded enforce=...。

常见问题

Q:插件市场里搜不到? A:市场只索引 npm / GitHub 上的包,本地安装的不会出现在搜索结果里;在「已装」列表里能看到。

Q:卡片显示「异常:这个包没有声明组合包」? A:package.json 缺 dsh.bundle.patch。本包已带;如果你自己改了包,记得保留。

Q:模型说 skill xxx is unknown? A:那是会话启动时的技能目录快照导致的,与插件无关。直接用 read 读注入里给的那个 INDEX.md 路径即可。

Q:写文件被拒绝,理由是「硬拦截」? A:本会话还没 read 过 INDEX.md。按理由里给的路径读一次(并执行对应清单),再重试原操作即可;不想要这个行为,把配置 enforce 设为 false。

Q:注入的提醒会显示在对话里? A:会,作为一条来源为插件的消息。长度约 70 token,一个会话只出现一次(版本变了再一次)。

License

MIT

Star

如果这个插件对你有用,欢迎在 GitHub 上点个 ⭐ Star,让更多 DSH 用户看到。