dsh-project-prompt

DSH PLUGIN记忆与知识

仓库 imroc/dsh-project-prompt · npm dsh-project-prompt

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-project-prompt 为 DeepSeek Harness 提供按项目匹配的私有提示规则,规则存于本机而非仓库,自动注入到匹配的会话及子代理中。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 3 复刻 0 · 未关闭 issue 0
最近更新 2026-09-24 创建于 2026-08-26
README 7.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 10 个版本版本不匹配时安装会报错
Node.js 要求>=18来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-project-prompt可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-project-prompt:为 DeepSeek Harness 提供私有按项目提示规则

  • 按远程/路径匹配
  • 支持 git worktree
  • 两种注入模式
  • 覆盖子代理会话
  • 零依赖单文件

适用场景

GitHub 集成文件读写记忆

上游标签

agents-mdai-agentcordisdeepseek-harnessdsh-pluginprompt-injection

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方imroc仓库 dsh-project-prompt · 默认分支 main
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue3 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-26 · 2026-09-24最后推送 2026-09-24
本站收录2026-08-27首次进入本站目录的时间

README 全文

7.8 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-project-prompt

English | 中文

DeepSeek Harness(DSH)的私有项目级提示词插件。

有些指引属于你的机器,而不属于仓库:与环境绑定的端到端测试方法、仅内网可达的入口、个人工作流偏好。AGENTS.md 是要提交共享的,放这些内容不合适。本插件把这类文本放在 $DSH_HOME,绝不进仓库,并在工作区命中规则的每个会话中注入——包括所有子代理和该仓库的任意 git worktree。

flowchart LR
subgraph repo["git 仓库(任意 clone / worktree / 子目录)"]
wt1["主检出"]
wt2["linked worktree A"]
wt3["worktree B"]
end
cfg["$DSH_HOME/cordis.patch.yml\nrules(机器本地,私有)"]
plugin["dsh-project-prompt\nagent 生命周期监听器"]
sp["会话系统提示词\n(或首条注入消息)"]
cfg --> plugin
wt1 & wt2 & wt3 -->|按 remote / repo / path 匹配| plugin
plugin -->|section / inject| sp

特性

  • 三种匹配键 —— 按 git remote URL(任意位置的 clone 都命中)、本地主仓库路径、或 cwd 前缀匹配;同一规则内多键为「或」关系。
  • 感知 worktree —— linked worktree 经 .git 文件的 gitdir: 指针回溯主仓库,规则写一次,之后新建的 worktree 及其子目录全部命中。
  • 两种注入模式 —— section(稳定的系统提示词段,KV cache 友好,支持 {{cwd}}/{{model}})与 inject(首条上下文消息,不做模板插值——文本含字面量 {{...}} 花括号(如 Helm/Go 模板)时使用)。
  • 覆盖子代理 —— 子代理继承会话 cwd,委派出去的工作同样遵守规则。
  • 加载期快速失败 —— 规则写错(缺 text、section 模式出现未知 {{var}})在插件加载时抛错,而不是每个请求都炸。
  • 零依赖 —— 单个 ESM 文件,只 import Node 内置模块;无构建、无产物。

环境要求

  • DeepSeek Harness ≥ 0.1.1-rc.2(已在 0.1.5-rc.2 与 0.1.7-rc.1 上验证)。依赖 agent 生命周期边:0.1.5 及以前是 agent/session-start,0.1.7 起是 agent/created;另用 systemPrompt.section 与 agent.inject。
  • Node.js ≥ 18(DSH 本身当前要求 ≥ 22)。

安装

用 DSH 的插件命令安装到某个 profile:

dsh plugin --profile web add dsh-project-prompt
# 或直接从 GitHub 仓库安装:
dsh plugin --profile web add github:imroc/dsh-project-prompt

安装后重启 DSH —— bundle 在启动时参与组合。

卸载:

dsh plugin --profile web remove dsh-project-prompt

配置

规则写在 $DSH_HOME/cordis.patch.yml(默认 ~/.dsh/cordis.patch.yml)——机器本地层,对本机所有 profile 生效。覆盖 bundle 安装的行:

- id: project-prompt
config:
rules:
# 该仓库不管 clone 到哪、开多少 worktree 都命中
- remote: github.com/my-org/my-project
text: |
## 本项目 E2E 测试方法(环境相关,私有)

1. 测试环境入口:http://e2e.internal.example.net(仅内网可达)
2. 首次跑 E2E 前先执行 `make e2e-prepare`。
3. 用例失败时优先排查 ……

# 按本地主仓库路径匹配;文本含字面量 {{...}} 花括号,须用 inject 模式
- repo: /home/me/dev/another-project
mode: inject
text: |
{{ .Values.replicas }} 这类字面量在这里原样保留。

# 按目录前缀匹配
- path: /home/me/dev
text: |
...

该文件受监听——保存即热重载插件行(对之后新开的会话生效)。

规则参考

键 类型 默认值 说明
remote string — 匹配 git remote URL(origin)。比较前做归一化:忽略协议、user@、scp 风格 : 分隔符、尾部 .git 与斜杠、大小写。[email protected]:u/r.git ≡ https://github.com/u/r。也支持 host/org/repo 后缀形式。
repo string — git 主仓库的本地绝对路径。其任意 linked worktree 与任意层级子目录都命中(worktree 经 .git gitdir 指针回溯)。
path string — cwd 前缀:会话工作区等于该目录或位于其下。
text string 必填 要注入的提示词文本。
mode section | inject section 注入模式,见下。
sectionName string project-prompt(同一会话命中多条 section 规则时自动递增) 系统提示词段名。
order number 50 系统提示词段顺序(DSH 惯例:0 人设,100–199 工具指引)。

一条规则至少需要 remote / repo / path 三者之一;命中的多条规则全部生效。

注入模式

section(默认) inject
落点 agent 作用域 systemPrompt 服务上的系统提示词段 首条 user 侧上下文消息(AGENTS.md 内容走的同一条路)
可见性 该会话每次请求 该会话每次请求
模板插值 有 —— {{cwd}}、{{model}} 会解析;其它完整的 {{...}} 组会抛错 无 —— 花括号按字面量保留
适用 稳定指引;KV cache 友好 含字面量 {{...}} 的文本(Helm/Go 模板、Terraform 等)

插件在加载期校验 section 文本:未知 {{var}} 会让加载失败,错误信息会提示把该规则改为 mode: inject。

工作原理

  1. 每个新会话(新建、恢复、clear/compact 之后——每次 publish 都产生新的 agent 作用域)在首个模型请求之前走 agent 生命周期边:0.1.5 及以前是 emit 模式的 agent/session-start,0.1.7 起是 serial 并会被首个请求 await 的 agent/created。插件两边都订阅,只做一次。
  2. 插件读取 agent.session.header.cwd 并逐条匹配规则;git 仓库身份通过从 cwd 向上找 .git 得出(.git 是文件说明是 linked worktree,其 gitdir: 指针回溯主仓库根与 remote URL)。
  3. 命中后,规则文本注册在 agent.ctx——agent 作用域上下文——只对该 agent 生效、随其销毁自动撤销。
  4. 该会话的每次模型请求都会重新组装系统提示词(或重读注入消息),规则文本全程在场。

「模型可见⟺已记录」:注入的 section 会出现在会话日志($DSH_HOME/sessions/…)记录的请求头里,这也是验证规则是否生效的方法。

验证安装

  1. 确认行已组合:dsh --profile web --dump-config | grep -A3 project-prompt。
  2. 在命中目录新开会话,问一个规则文本应当影响回答的问题。
  3. 或检查会话日志:该会话的 session.jsonl.zstd 中记录了含你 section 的完整系统提示词。

限制

  • 匹配依据是路径/remote 身份而非内容:同一 remote 的不同 clone 都会命中 remote 规则(这通常正是目的)。
  • 子模块目录(.git 指向 .git/modules/…)不做回溯;请用 path 规则。
  • 规则是静态配置——本插件刻意不从仓库内读文件(那会重新引入共享状态)。工作区内的文件请用 DSH 内建的 AGENTS.md/CLAUDE.md 加载机制。

开发

git clone github:imroc/dsh-project-prompt && cd dsh-project-prompt
npm test          # node --test;git fixture 在临时目录中自建
node --check index.js

插件是单个零依赖 ESM 文件;提交的源码即发布产物(无构建、无 prepare 脚本——这也是 git 安装无需 pnpm allowBuilds 的原因)。保持这一点的约束说明见 AGENTS.md。

许可证

MIT © roc

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-project-prompt 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-project-prompt`。

dsh-project-prompt 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-project-prompt 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-project-prompt 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1。版本较多,只列出前 8 个。

dsh-project-prompt 需要什么运行环境?

Node.js >=18。环境不满足时安装会失败,建议先确认本机版本。

dsh-project-prompt 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-project-prompt 有哪些功能?

按远程/路径匹配、支持 git worktree、两种注入模式、覆盖子代理会话、零依赖单文件。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

imroc 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。