dsh-anchored-standard的工程化体系:shared单一事实源、npm run sync物化与自包含模式目录
【免费下载链接】dsh-anchored-standardTwo-phase DeepSeek Harness preset: Minimal-aligned bootstrap, then full Standard tools (Project2 98/99)项目地址: https://gitcode.com/gh_mirrors/ds/dsh-anchored-standard
dsh-anchored-standard是一个面向 DeepSeek Harness 的实验性 Agent 预设(preset)集合:先用 Minimal 条件锚定模型轨迹,再晋升到完整的 Standard 工具目录。仓库里住着 7 个可独立安装的模式目录,它们却共享同一批插件源码——这套「shared/ 单一事实源 +npm run sync物化 + 自包含模式目录」的工程化体系,是理解本仓库如何做到「改一处、全模式同步、复制即装」的关键。
一、问题背景:7 个模式、14 个共享插件 🧩
仓库提供 7 种锚定模式,各自对应一个独立目录:
| 模式 | 目录 | 锚定机制 |
|---|---|---|
| Anchored Standard(基础模式) | preset/ | Minimal 真实工具对(bash + str_replace_editor) |
| Zero-Anchored Standard | zero-anchored-standard/ | 一轮零工具固定锚定消息 |
| Whoami Standard | whoami-standard/ | 一轮「你是谁」自我介绍 |
| Prefab Anchored Standard | prefab/ | 内置成功轨迹种子 |
| Eternal Minimal | eternal-minimal/ | 全程 Minimal 对 + dshx 网关 |
| Wire Think-Execute Standard | wire-think-standard/ | 线层 tool_choice: none |
| Combo Anchored | combo-anchored/ | 思考分离 + 深度闸门 + 深思滴灌 |
其中大量插件被多个模式同时复用,例如 shared/context-gate.mjs(统一注入控制)、shared/tool-bootstrap.mjs(工具目录控制)、shared/instruction-hint.mjs(一次性指令提示)、shared/dev-tool-search.mjs(按需工具发现)等,共 14 个文件。
如果每个模式各存一份,改一个 bug 就要改 7 遍——这正是「单一事实源」要消灭的问题。
二、shared/ 目录:插件的单一事实源(Single Source of Truth)
约定非常简单:
- 被 2 个及以上模式使用的插件,源码只放在 shared/ 一次
- 模式目录里的同名
.mjs文件全部是生成出来的物化副本(materialized copy),且这些副本会提交进仓库 - 永远只编辑
shared/,绝不直接改模式目录里的副本
以 shared/compaction-epoch.mjs 为例:它是纪元感知的晋升追踪器,被context-gate、tool-bootstrap、instruction-hint三个插件通过本地 import 引用。修改它一次,所有引用它的模式在同步后行为一致——不会出现「preset 模式和 whoami 模式对压缩边界(compaction)处理不一致」这类幽灵 bug。
而 shared/custom-bash.mjs(Windows 专用 bash 工具)只在 Windows 平台挂载的行里出现,它同样住在shared/,由同步脚本决定分发到哪些模式。
三、npm run sync:一键物化插件副本
同步逻辑全部集中在 scripts/sync-modes.mjs,入口脚本定义在 package.json:
| 命令 | 作用 |
|---|---|
npm run sync | 把shared/插件重新物化(覆盖写入)到每个模式目录 |
npm run check | 先做--check漂移校验,再跑node --test全量测试 |
npm test | 零依赖测试套件 |
同步脚本的工作流程(见 sync-modes.mjs 的MODES清单):
- 解析入口:扫描每个模式
agent.cordis.yml中所有name: ./xxx.mjs行,得到该模式声明的本地插件清单; - 计算闭包:沿插件文件内的本地 import(如
from './compaction-epoch.mjs')做传递闭包,把间接依赖也纳入——这就是为什么tool-bootstrap.mjs单独引用也能带上compaction-epoch.mjs; - 校验一致性:模式目录中出现未被清单收录的「陈旧
.mjs」、引用了../外部文件、或引用了既不在shared/也不在模式目录的文件,都会直接报错; - 写入副本:把
shared/下对应文件原样写入模式目录,并打印[sync] preset/context-gate.mjs <- shared/context-gate.mjs之类的日志。
💡 副本是已提交的,所以安装某个模式时完全不需要执行任何构建命令——直接复制目录即可。
四、漂移检查:--check 与 CI 式守门
--check模式只读不写:逐字节比对模式目录内的副本与shared/源文件,发现任何漂移(drift)就以退出码 1 失败,并提示run: npm run sync。这条规则同时被测试套件把守——test/self-containment.test.mjs 会在npm test时实际 spawn 一次sync-modes.mjs --check,任何人提交前跑一下npm run check,「手改物化副本」这种事故就无法溜进仓库。
这形成了完整闭环:改shared/→npm run sync→ 提交两边。
五、自包含模式目录:复制即可安装 🔧
自包含(self-contained)是这套体系对用户的最大价值:
- 每个模式目录只允许引用
./下的本地插件,agent.cordis.yml中出现../会被同步脚本和测试双重拦截; - 因此安装任何模式都只需一条命令,例如基础模式:
cp -R preset "$HOME/.dsh/.agent-presets/anchored-standard"- test/self-containment.test.mjs 中的第一个测试专门断言:7 个模式目录的
agent.cordis.yml均无任何../向上引用。
以基础模式 preset/ 为例,物化后目录内包含 context-gate.mjs、tool-bootstrap.mjs、dev-tool-search.mjs 等副本,以及仅本模式持有的 custom-bash.mjs;preset/preset.yml 则声明了预设名称与描述。而prefab/模式除了共享插件,还拥有自己的一组专属工具脚本(install.mjs、instantiate.mjs、roll-prefab.mjs 等),它们属于「模式自有文件」,不参与共享。
六、关键文件速查 📚
| 文件 | 说明 |
|---|---|
| shared/ | 单一事实源,14 个跨模式共享插件 |
| scripts/sync-modes.mjs | 物化/漂移检查脚本 |
| package.json | sync/check/test三个 npm 脚本 |
| test/self-containment.test.mjs | 自包含 + 无漂移的双重守门测试 |
| preset/agent.cordis.yml | 基础模式插件装配清单(含全部挂载顺序注释) |
| README.zh-CN.md | 中文说明:模式总览、术语表、配置参考 |
七、新手上手三步
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/ds/dsh-anchored-standard - 验证工程体系:运行
npm test(内部含sync --check),确认物化副本与shared/零漂移 - 安装模式:把需要的模式目录(如
preset/)整体复制到~/.dsh/.agent-presets/<预设id>,重启 DeepSeek Harness 后在新会话中选择对应预设即可
这套「单一事实源 + 物化 + 自包含」的三件套,本质是把「7 份易失同步」压缩成「1 份源码 + 1 条命令」,是插件型仓库里非常值得借鉴的工程化范式。
【免费下载链接】dsh-anchored-standardTwo-phase DeepSeek Harness preset: Minimal-aligned bootstrap, then full Standard tools (Project2 98/99)项目地址: https://gitcode.com/gh_mirrors/ds/dsh-anchored-standard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考