前言¶
在 DeepSeek Harness(DSH)里让 Agent 写代码、做页面或跑实验时,常见做法是直接开干:模型一边改文件一边补逻辑,事后才在对话里零散说明「打算怎么做」。计划没有固定落点,多文件任务也容易在中途失去结构。
社区维护者 linlin539 发布的 dsh-skill-writing-plans(npm 包名 dsh-skill-writing-plans,当前版本 0.2.0)是一个 skill 插件:向宿主注册名为 plan-first 的技能,让 Agent 在动手前先产出结构化实现计划,再按复杂度决定是当场做完还是请你选执行方式。插件在 SkillHub 分类为「模型推理」;仓库 GitHub 采用 MIT 许可。
下面介绍它解决什么问题、怎么装、怎么用,以及和同名 Trae 技能并存时要注意的点。
这是什么¶
dsh-skill-writing-plans 是 DeepSeek Harness 的 skill 插件,通过 Cordis patch 向 Host 注册 plan-first 技能(README 明确:v0.2.0 起技能名是 plan-first,不是 writing-plans)。
装上之后,涉及写代码、做页面、跑实验类请求时,Agent 会先写计划再执行:简单任务内联做完;复杂任务保存计划后提供「子代理并行」或「当前会话逐步执行」的选择。插件不带 UI,主界面插件列表里可能看不到,属于只注册技能、无界面组件的类型。
核心功能¶
资料中可核对的能力如下。
| 能力 | 说明 |
|---|---|
| 自动先规划 | 写代码、做页面、跑实验类请求会先产出计划,无需你每次口头提醒 |
| 计划固定路径 | 写入 docs/superpowers/plans/YYYY-MM-DD-<功能名>.md,便于回看与归档 |
| 按复杂度分档 | 单文件等小需求:计划约 15–30 行、单个任务,写完直接执行;多文件、多任务或训练类需求保存计划后询问执行方式 |
| 计划可执行 | 任务含具体路径、完整代码片段、可执行命令与预期结果;避免 TBD、TODO、「稍后实现」等占位 |
| 仅出计划 | 可用「只出计划,先不要写代码」类指令,只保存文档、不改代码 |
| TDD 仅在有测逻辑时用 | 函数、API、数据转换等有可测逻辑的场景可写 TDD 循环;静态页面不写测试 |
与 Trae writing-plans 的区分(重要)
若同时安装 dsh-connect-trae,Trae 技能目录里可能有 obra/superpowers 原版的 writing-plans。DSH 同名技能只保留一个时,Trae 那份可能抢先注册,本插件技能会被静默丢弃,你改本插件 SKILL.md 也可能不生效。
v0.2.0 将本插件技能改名为 plan-first,以便共存:
| 触发方式 | 使用的技能 |
|---|---|
/plan-first |
本插件(中文、精简;简单需求直接执行) |
/writing-plans |
Trae 原版(若通过 dsh-connect-trae 接入) |
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。
从 npm 安装(推荐)¶
npm install dsh-skill-writing-plans
或在 DSH 中直接添加已发布包(桌面客户端请用此方式,安装边界只接受 npm 上带精确版本号的包):
dsh plugin add dsh-skill-writing-plans@0.2.0
从插件市场安装¶
- 打开 DeepSeek Harness → 插件市场(社区目录站点 SkillHub 插件页 可作入口参考,与 DeepSeek / 幻方无官方从属关系)
- 搜索
plan-first或dsh-skill-writing-plans - 安装并按提示重启 DSH
从 GitHub 源码安装(仅普通 dsh web / CLI)¶
README 说明:克隆仓库后,在所用 DSH profile 目录将仓库放到 packages/dsh-skill-writing-plans,在 profile 的 package.json 增加 link 依赖,并在 cordis.patch.yml 末尾插入对应 patch 条目,然后重启 DSH。桌面客户端无法从纯 GitHub 源安装。
仅使用技能文件¶
不装完整插件时,可将仓库内 assets/plan-first/SKILL.md 复制到:
- 项目级:
{项目}/.dsh/skills/plan-first/SKILL.md - 用户级:
{DSH_HOME}/skills/plan-first/SKILL.md
禁用或卸载插件市场里的本包即可关闭该行为。
更新示例:
npm install dsh-skill-writing-plans@latest
查看 npm 上当前版本:
npm view dsh-skill-writing-plans version
典型用法¶
触发技能请使用 /plan-first,不要用已弃用的 /writing-plans(除非你要的是 Trae 原版)。
简单需求:计划写完即执行¶
/plan-first 帮我写一个 index.html,页面中央显示 'Hello World'
按 README 描述,Agent 会声明使用 plan-first、快速查看工作区,将约 20 行计划写到例如 docs/superpowers/plans/2026-10-21-hello-world-page.md,因仅单一步骤而直接创建 index.html,并说明计划文件位置。
复杂需求:保存计划后选执行方式¶
/plan-first 帮我实现一个学生信息管理系统,包含增删改查和数据库
计划保存后,会询问:子代理驱动(推荐)(每任务独立子代理)或 当前会话执行(逐步执行、带检查点)。
只生成计划¶
/plan-first 只出计划,先不要写代码
只写入计划文档,不修改代码。
计划文档结构示例(简单需求):含目标、架构、技术栈、分步任务与自检项;复杂计划可含多任务,并在有可测逻辑时包含 TDD 环节。
适用场景与注意¶
适合谁
- 希望在 DSH 里统一「先计划、再实现」,且计划能归档到
docs/superpowers/plans/的开发者 - 需要与 Trae 自带
writing-plans并存、用/plan-first走中文精简流程的团队 - 接受 skill 插件无独立 UI、需在插件市场已安装列表或日志中确认加载的情况
注意
- 旧版用
/writing-plans触发本插件的用法已改为/plan-first - 装完后主界面可能不显示本插件,属正常现象
- 工作区里旧版本留下的计划文件不会自动删除;若计划仍冗长,请确认是重启 DSH 后由
plan-first新生成的文件 - DSH 生态理念是「一切皆插件」;安装与运行仍受当前进程权限约束,请自行审阅依赖与源码
结尾¶
dsh-skill-writing-plans 用 plan-first 技能把「结构化实现计划」固定进 Agent 工作流:小任务少啰嗦、大任务可选执行路径,计划路径与格式在 README 中有明确约定。若你已在用 dsh-connect-trae,务必用 /plan-first 与本插件对齐,避免与 Trae 的 /writing-plans 混淆。