Skip to content

dsh-complex-project-preset

Verified

dsh-complex-project-preset · v1.0.1 · MIT

复杂项目模式 preset for DeepSeek Harness: the standard tool stack plus a four-document policy, documents that describe only the current state, a no-unrequested-push rule, a careful-coding workflow, and plain-language reporting.

Install

dsh plugin add dsh-complex-project-preset

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

dsh-complex-project-preset

给 DeepSeek Harness(DSH)的一个 Agent 预设:标准模式的全部工具,加上「先想清楚再动手」的工作纪律。

English: README.md

复杂项目模式的完整定义都在 cordis.patch.yml 里:它往 Profile 里插入一行 @deepseek-ai/dsh-agent-preset,注册一个 id 为 complex-project 的预设。这个包装的是一套配置,不带任何宿主代码、不带前端界面,所以升级风险很小。


它解决什么 / Why

标准模式能干活,但不会自己守规矩:改动越做越大、文档越写越像流水账、没让你点头就把代码推上去了。

这个预设把四条纪律写进人格提示(persona),每次会话自动生效:

纪律 一句话
四文档制度 每个项目最多四个文档:项目介绍、方案设定、改动记录、现状与下一步
文档只写当前状态 不写 AI 修改历史、不留被推翻的旧方案、不出现「阶段 1~5」这类临时说法
提交推送红线 你没说「可以提交」,它不 commit、不 push、不开 PR
谨慎编码 + 大白话 先复述目标和验收标准再动手;手术式最小改动;汇报先说结论

里面有什么 / What's inside

工具栈与「标准模式」一致(bash/pwsh 按平台二选一、文件读写与搜索、任务与后台作业、技能、计划模式、压缩、子代理与工作流、网页抓取、TODO 工具、present),差异全在 persona 提示与文档规则上:

  • persona —— 四文档制度、文档只写当前状态、提交推送红线、谨慎编码四条、大白话汇报;
  • agent-instructions —— 照常加载用户全局 AGENTS.md(上限 64 KB);
  • planning / compaction / delegation —— 与标准模式相同的分组与隔离设置;
  • tool-plugin-manager —— 关闭,避免 agent 在自己的 preset 里改插件树。

⚠️ persona 里刻意不设 suffix。DSH 的提示词变量只注册了 provider 与 model,写别的 {{变量}} 会在装配阶段直接抛错,整轮对话一个请求都发不出去。工作目录由运行时上下文自动注入,不需要在这里声明。

安装 / Install

# 从 npm 安装(推荐,免构建)
dsh plugin --profile web add dsh-complex-project-preset

# 或从仓库 / 本地目录安装
dsh plugin --profile web add https://github.com/sueqet/dsh-complex-project-preset
dsh plugin --profile web add link:<本地目录>

安装后重启 Profile(重新执行 dsh web 或重启桌面端)才会装载 —— 预设是 Profile 组合里的一行,不是运行时热加载。

卸载 / Uninstall:dsh plugin --profile web remove dsh-complex-project-preset

会和「本地同名预设」打架 / Conflicts with a hand-rolled copy

如果你的 Profile 里已经用 cordis.patch.yml 手写过 id: preset-complex-project 的行,装上这个包会重复注册同一个预设(DSH 会报 Duplicate agent preset: complex-project)。做法是:

  1. 删掉自己 cordis.patch.yml 里那段 - id: preset-complex-project ...;
  2. 再 dsh plugin --profile <name> add dsh-complex-project-preset;
  3. 重启 Profile。

同理,同一时间只该装一个提供 complex-project 的包。

版本要求 / Version requirement

需要 DSH ≥ 0.1.7-rc.2(预设注册表 @deepseek-ai/dsh-agent-preset-registry 在此版本进入基础组合)与 Node.js ≥ 22.19.0。已在 DSH 0.1.7-rc.2 与桌面端 0.2.1-rc.2 上验证。

Node 这条下限是 DSH 自己的要求,不是这个包的:DSH 的组合里用到 process.getBuiltinModule,Node 从 22.3 才提供。本包只有一份清单加一个 YAML patch,没有宿主代码、没有前端代码、也没有安装期脚本,自己从不加载 JavaScript,这条下限只是如实反映 DSH 能跑的版本范围。

怎么确认装上了 / Verify

重启后打开「新建会话」的模式选择器,列表里应该多一项 复杂项目模式(order 2,排在标准模式之后)。选中它开一轮对话,随便问一句项目现状——回答里应该出现四文档的说法,而不是自由发挥。

命令行侧也可以查组合树:

dsh --profile web --dump-config | grep -A3 preset-complex-project

开发 / Develop

npm test          # 校验 manifest 与 cordis.patch.yml 的一致性(含 !!js 表达式解析)
npm pack --dry-run

tools/smoke.mjs 会检查:dsh.bundle.patch 指向存在的文件、仓库字段指回本仓库、预设行的必填字段齐全、子行 id 不重复、persona 提示没有被截断且没有误设 suffix。它优先用 DSH 自带的 loadOverlayPatches 解析,所以 !!js 表达式与真实启动时的行为一致。

许可 / License

MIT © 2026 sueqet