前言¶
在 DeepSeek Harness(DSH)里用标准 preset 做长周期开发时,常见问题是:diff 越改越大、项目文档变成变更流水账、代码在你没明确同意时就 commit 或 push。DSH 社区把能力拆成插件;dsh-complex-project-preset 是维护者 sueqet 发布的工作流类 preset,在保留标准工具栈的前提下,把「四文档策略、只写当前态、未经要求不提交推送、谨慎改码与结论先行汇报」写进 persona,让每个新会话默认带上这些约束。
这是什么¶
dsh-complex-project-preset 是面向 DSH 的 agent preset 插件,npm 包名同为 dsh-complex-project-preset,当前版本 1.0.1,许可证 MIT。包内只有配置:通过 cordis.patch.yml 向 profile 插入一行 @deepseek-ai/dsh-agent-preset,并注册 id 为 complex-project 的 preset;不含宿主代码、不含浏览器 UI,升级面很小。
与「只靠会话里口头提醒 agent」相比,该 preset 把规则固化在 persona prompt 里,避免每开新对话都要重复说明文档结构和 git 边界。
核心功能¶
四条 persona 规则¶
README 用表格概括了写入 persona 的四条纪律:
| 规则 | 含义(一行) |
|---|---|
| Four documents | 项目最多保留四类文档:介绍、决策、变更记录、当前状态与下一步 |
| Current state only | 文档不写 AI 编辑史、不保留已推翻的决策、不留「阶段 1–5」类过时表述 |
| Commit/push red line | 在你明确同意前,不执行 git commit、git push 或开 PR |
| Careful coding + plain language | 先复述目标与完成标准,做小范围 diff,汇报时结论在前 |
工具栈与标准 preset 对齐¶
bash/pwsh 按平台选择,文件读写与搜索、任务与后台作业、skills、plan mode、compaction、子 agent 与 workflow、web fetch、TODO 等与标准 preset 一致。差异主要在 persona 与文档约定:
persona:上述四文档策略、当前态文档、提交推送红线、谨慎编码与平实汇报;agent-instructions:仍加载全局AGENTS.md(上限 64 KB);planning/compaction/delegation:分组与隔离设置与 standard 相同;tool-plugin-manager:关闭,agent 不能改写自己的插件树。
README 特别说明:persona 块 deliberately 不设 suffix。DSH 在 prompt 组装时只把 provider 和 model 注册为变量,其它 {{name}} 会导致整轮失败;工作目录由运行时上下文注入,在 persona 里再声明既多余又可能触发错误。
环境要求¶
- DSH ≥ 0.1.7-rc.2(
@deepseek-ai/dsh-agent-preset-registry自该版本起加入基础 composition); - Node.js ≥ 22.19.0(与 DSH 运行环境一致;本包仅为 manifest + YAML patch,不自行加载 JavaScript)。
已在 DSH 0.1.7-rc.2 与桌面版 0.2.1-rc.2 上验证。
安装与启用¶
推荐从 npm 安装(预构建,无需构建审批):
# from npm (recommended — prebuilt install, no build approval)
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:<local-dir>
preset 是 profile composition 中的一行,不能热加载。安装后需重启 profile(重新执行 dsh web,或重启桌面应用)。
卸载:
dsh plugin --profile web remove dsh-complex-project-preset
与手写 preset 冲突¶
若 profile 的 cordis.patch.yml 里已手写 - id: preset-complex-project,再装本包会注册两次同名 preset,DSH 报错 Duplicate agent preset: complex-project。切换步骤:
- 删除手写的那段
- id: preset-complex-project ...; dsh plugin --profile <name> add dsh-complex-project-preset;- 重启 profile。
同一时间只应有一个包提供 complex-project。
典型用法与验证¶
重启后,在新会话的模式选择器里应能看到 复杂项目模式(排序为 2,紧挨标准 preset)。用该模式开会话,询问项目当前状态——回答应围绕「四文档」组织,而不是随意发挥。
CLI 可查看合成后的配置树:
dsh --profile web --dump-config | grep -A3 preset-complex-project
适用场景与注意¶
适合:需要长期维护、文档与代码边界清晰的多模块项目;希望 agent 默认遵守文档结构和 git 红线、又不想牺牲标准 preset 全套工具的团队或个人。
注意:
- 插件以当前 DSH 进程的权限运行;安装前请阅读仓库源码与 MIT 许可证,确认符合你的安全与合规要求。
- 社区目录 skillhub.cn 上的插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。
- 若你已在 profile 里自制
complex-project,先处理重复 id 再安装本包。
结尾¶
dsh-complex-project-preset 把「标准能干活的工具栈」和「复杂项目下的文档与 git 纪律」合成一个可选模式,适合作为 DSH web profile 上的长期开发 preset。更多信息见 GitHub:sueqet/dsh-complex-project-preset 与 SkillHub 目录页。