dsh-complex-project-preset:复杂项目模式下的文档纪律与提交红线

前言

在 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。切换步骤:

  1. 删除手写的那段 - id: preset-complex-project ...;
  2. dsh plugin --profile <name> add dsh-complex-project-preset;
  3. 重启 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 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye