前言¶
用 DeepSeek Harness(DSH)做日常开发时,模型容易把简单需求扩成大面积重构,或回复冗长、要点分散。你可以在系统提示里手写「只做最小改动」,但每次会话都要记得带上,子代理也未必继承同一套约束。
Ponytail 上游项目把这类习惯叫做「lazy senior dev mode」:用能完整解决问题的最小改动推进任务,回复尽量一次读完。维护者 Vincent-chk 将其实现为 DSH 插件 @dsh-ext/dsh-ponytail(GitHub:Vincent-chk/dsh-ponytail),以单个 bundle 形式接入:在 Plugins 里打开后对本 profile 的每次会话生效,无需记忆 slash 命令。社区目录页:https://www.skillhub.cn/plugins/Vincent-chk/dsh-ponytail。
这是什么¶
dsh-ponytail 把上游 Ponytail 的规则与技能打包进 Cordis patch。bundle 开启后,会在每步组装提示时注入 ponytail:rules 段(order 9500),并注册六个与 Ponytail 相关的 skill;关闭 bundle 则移除规则与全部技能。强度由配置项 defaultMode 决定,不是运行时命令切换。
包名是 @dsh-ext/dsh-ponytail(当前版本 0.1.1,MIT)。要求 DSH 版本 >=0.2.1-rc.2 <0.3.0。请勿与 npm 上无关的旧包 dsh-ponytail@0.2.0 混淆——装错会报与当前 DSH 不兼容。
核心功能¶
常驻规则(Always-on rules)¶
提示段中会带上 PONYTAIL MODE ACTIVE — level: <level> 以及规范化的 Ponytail 规则;在本 profile 的每次会话、每一步组装、含子代理在内都会重新读取。发送整条消息且内容恰好为 stop ponytail 或 normal mode 时,本次进程内规则会结束(与上游行为一致);重新打开 bundle 或重启后恢复为配置的 level。
六个技能¶
会话目录会在请求匹配时让模型加载对应 skill,例如审查类请求可落到 ponytail-review,无需额外手势。五个任务 skill 也可手动输入 /ponytail-review、/ponytail-audit、/ponytail-debt、/ponytail-gain、/ponytail-help;核心 ponytail skill 仅由模型按需加载。
四级 defaultMode¶
在 bundle 行配置里设置 defaultMode,无命令、无状态文件:
defaultMode |
行为 |
|---|---|
off |
不注入规则;六个 skill 仍可按需加载。 |
lite |
按需求实现;用一行点出更小的可选方案。 |
full |
完整 Ponytail 规则(默认)。 |
ultra |
在动手实现前先质疑请求是否合理。 |
解析顺序:环境变量 PONYTAIL_DEFAULT_MODE 优先于行内 defaultMode,再否则为 full。
有意未移植的能力¶
README 说明:Claude Code 状态条/本地 HTML 看板、上游 /ponytail 等级命令与状态文件、按项目分级等未移植;DSH 侧已有 token/cache 展示,开关与等级由 bundle 与部署配置承担。
安装与启用¶
任选一种方式,安装的是同一 bundle(含 dsh.bundle.patch)。
Plugins → Add plugin 或 CLI dsh plugin add 可使用:
| 途径 | 规格 |
|---|---|
| GitHub | github:Vincent-chk/dsh-ponytail |
| Git URL | https://github.com/Vincent-chk/dsh-ponytail |
| Tarball | 在检出目录执行 npm pack 后,填写 .tgz 的绝对路径 |
| 本地目录 | 本仓库目录的绝对路径 |
插件市场索引: 在 Plugins → Discover → Add index source 添加:
https://vincent-chk.github.io/dsh-ponytail/market/index.json
然后从卡片安装。官方说明该包尚未发布到 npm(npm publish 见仓库 PUBLISHING.md)。
在 Plugins 页面关闭 bundle 会移除规则与六个 skill;再次打开即恢复。
调整强度(defaultMode)¶
在 profile 的 cordis.patch.yml 增加覆盖行。加载器会替换该行的完整 config,因此需写明想要的 level:
- id: ponytail
name: '@dsh-ext/dsh-ponytail'
config:
defaultMode: lite # off | lite | full | ultra
修改后 HMR 会重组;若未生效,可在 Plugins 页先关再开 bundle。
典型用法¶
- 安装并启用 bundle,保持默认
full,日常编码会话会自动带上最小完整改动约束。 - 需要代码审查时,直接描述「review this change」类请求,或输入
/ponytail-review。 - 临时只想轻量约束时,将
defaultMode设为lite;希望模型先挑战需求再写代码时用ultra。 - 单次对话内想退出规则:发送单独一条
stop ponytail或normal mode。
仓库内 npm test 会跑自检与 bundle 注入测试,用于验证 level 语法、停用短语、六项资源完整性及未注册多余命令等;开发者可在本地检出后自行运行,安装用户一般不必执行。
适用场景与注意¶
适合希望 DSH 长期保持「 senior 式小步交付」、又不想每次手写系统提示的开发者;分类上属于工作流类插件。
插件以当前 DSH 进程权限运行,安装前请阅读仓库源码与 MIT 许可证,并确认来源为 Vincent-chk/dsh-ponytail 而非旧 npm 包 dsh-ponytail。若出现与 dsh-ponytail@0.2.0、DSH 0.1.0-rc.6 相关的兼容错误,按 README Troubleshooting 卸载错误包后改用 github:Vincent-chk/dsh-ponytail 或市场索引安装。
结尾¶
dsh-ponytail 把 Ponytail 的常驻规则与六项技能收成一键开关的 bundle,用 defaultMode 控制强度,适合在 DSH 里固定「最小完整改动」习惯。目录:https://www.skillhub.cn/plugins/Vincent-chk/dsh-ponytail;源码与说明:https://github.com/Vincent-chk/dsh-ponytail。