DietrichGebert/ponytail v4.9.0 的 DSH 完整移植:常驻懒人 senior 模式与七阶梯子(YAGNI 到最小实现),含 6 个技能(评审、审计、债务、收益、帮助)且无空 tool。
安装
# npm 包(预构建)
dsh plugin --profile web add @wenaixi/dsh-ponytail
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Wenaixi/dsh-ponytail
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DietrichGebert/ponytail 的 DeepSeek Harness (DSH) 移植版,独立维护(ADR-0010)。把著名的七阶梯子直接注入系统提示词,提供 6 个原生技能,不注册任何模型 tool。
是什么
对抗 AI 样板代码与过度工程的解药:删减优于新增,平实优于精巧,文件越少越好。动手写代码前先质疑需求是否该存在(YAGNI),优先复用标准库与现有代码,能写一行就绝不写五十行。
具备全场景零缓存破坏架构(ADR-0012):会话初始基线终身锁定,动态切档通过当前轮次末尾追加系统提醒生效,长对话历史 Prompt Cache / KV 缓存 100% 保持命中。以纯净 dsh.bundle 交付,不往用户目录写垃圾文件,卸载干净,HMR 自动热重载。
安装
需要 DSH 运行时(npm i -g @deepseek-ai/dsh),Node 与 pnpm 的版本要求见上方徽章。示例以 web profile 为例,换成你自己的 profile 名字即可。
# 安装(自动触发 HMR 热重载)
dsh plugin --profile web add @wenaixi/dsh-ponytail
# 卸载
dsh plugin --profile web remove @wenaixi/dsh-ponytail
# 检查合成配置树
dsh --profile web --dump-config | grep -A2 ponytail
用法
/ponytail 切到 full(七阶梯子全开)
/ponytail lite 只做最低限度
/ponytail ultra 先挑战需求本身
/ponytail off 关闭注入
/ponytail default lite 跨会话持久化
stop ponytail 同 off,整句匹配
等级在每次会话启动时按 env > Profile 补丁 > 内置兜底 full 重置,所以 /ponytail <档> 只在本会话有效,跨会话要写 /ponytail default <档>。
零缓存破坏特性 (Prompt Cache Friendly)
会话内切档或全局改配置时,顶层系统提示词基线严格保持静态恒定,切换指令通过当前轮次用户消息末尾的 <system-reminder> 增量追加生效(对齐官方技能目录更新范式,ADR-0012),100% 保护长对话的历史 Prompt Cache / KV 缓存,零重算延迟,零多余 Token 消耗。
包含技能
| 技能 | 作用 |
|---|---|
/ponytail |
核心模式:七阶梯子、懒人资深工程师守则 |
/ponytail-review |
猎杀复杂度代码评审:只看 diff,找能删的东西 |
/ponytail-audit |
全仓过度设计审计:按可删收益排序 |
/ponytail-debt |
收割 ponytail: 注释列成待办台账 |
/ponytail-gain |
精简收益看板:实测代码缩减比例 |
/ponytail-help |
模式、命令与技能速查卡 |
技能正文与描述语言
技能正文是上游 DietrichGebert/ponytail v4.10.3 的英文原文,按 tag 逐文件取回。两处内容对 DSH 不适用,已就地改写为真实落点:ponytail-gain 的数据来源指向 assets/*.svg(本仓无上游的 benchmarks/),ponytail-help 的配置与更新章节改为 profile 补丁与 dsh plugin。
模型目录与配置面板看到的是同一个描述字符串,语言由 skillDescriptionLang 决定(三态:显式中文 zh / 显式英文 en / 未配置 auto)。未配置时跟随宿主语言 locale.preference 的显式选择(仅英文触发对齐,其余兜底中文);显式选择即锁定。两套描述的真源是 skills/descriptions.zh.json 与 skills/descriptions.en.json,经 ctx.remote.ponytail.snapshot() 下发。
配置面板
已安装插件的卡片详情内嵌配置面板:运行等级、6 个技能的独立开关、一键恢复默认,外加一条三级优先级诊断链,逐行显示环境变量、Profile 补丁、内置兜底各自的值与生效状态。
等级控件只显示补丁里真实配置的档。补丁没写 defaultMode 时选中末尾追加的「未设置」段,「当前生效」由诊断链顶部的文字给出。
读写走两条官方通道:
| 通道 | 内容 | 落点 |
|---|---|---|
ctx.configForms.get('ponytail') |
默认档、技能启用列表,写入自带 revision 冲突检测 | profiles/<name>/cordis.patch.yml |
ctx.remote.ponytail.snapshot() |
当前生效等级、三级诊断链,只读 | In-memory RPC |
无 Profile 上下文的组合(headless、CLI)没有 Settings 服务,配置读写回退到 profiles/<name>/ponytail/config.json。从旧版本升级时,全局的 $DSH_HOME/ponytail/config.json 首次启动时一次性导入 Profile 补丁,旧文件随后被改名 .imported。
上游映射
上游 hooks/ 的六个 Hook 合并进单一 DSH 插件:
| 上游 | DSH 侧 |
|---|---|
ponytail-config.js |
src/ponytail-config.ts |
ponytail-instructions.js |
src/ponytail-instructions.ts (单一出口 renderPromptSection) |
ponytail-state.js |
src/ponytail-state.ts (flag 文件存取、会话基线管理、重载) |
ponytail-activate.js |
src/ponytail.ts (agent/created 钩子) |
ponytail-mode-tracker.js |
src/ponytail-commands.ts (createCommandDispatcher) |
ponytail-subagent.js |
src/ponytail.ts (agent/created, PONYTAIL_SUBAGENT_MATCHER) |
提示词经 systemPrompt.section('ponytail') 注入,order: 50 落在 persona(0) 与工具(100) 之间。切换到 off 时,提示词生成零成本。标志文件与配置同源持久化在当前 profile 内,同机多实例互不干扰。
开发与门禁
pnpm typecheck # tsc --noEmit
pnpm build # tsc 出 lib/,再由 build-client.mjs 生成 lib/client.js
node scripts/verify.mjs # 静态门禁:产物、技能、零 tool、UI 落点、locale 键集
node scripts/docs-verify.mjs # 版本策略与双语文档一致性
node scripts/behavior.test.mjs # 行为测试 (113 项全通)
dsh --profile web --patch ./cordis.patch.yml --dump-config # 验证补丁解析
pnpm dsh web --patch ./cordis.patch.yml # 热重载联调
协议
MIT,详见 LICENSE。
致谢
- 上游 DietrichGebert/ponytail
- DeepSeek Harness 的插件架构与运行底座
- dsh-plugin-dev 提供的 DSH 插件开发架构规范与权威开发指南
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-skill-explorer★ 8759
技能中心:按来源分级浏览已加载的全部 skill,启用/禁用模型调用、创建新技能、删除进可恢复回收站。
GanyuanRan/Aegis★ 1346
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。
superdesigndev/superdesign-skill★ 708
在 Superdesign 画布上做 UI 与营销图的设计技能:先读代码库拿上下文、抽取现有设计系统,再通过 Superdesign CLI 生成并迭代可分支的设计稿、流程页与可复用组件。
linhay/harmony-next.skills★ 362
为 DeepSeek Harness 提供 HarmonyOS NEXT 技能包、离线 API 参考及 DevEco、HDC 与模拟器自动化指南。
dhicoc/dsh-reverse-skill★ 248
完整 reverse-skill(85 个 SKILL.md)的 DeepSeek Harness 插件:逆向工程、授权渗透测试与安全研究的技能路由包。
sandbaseai/sandbase-skills★ 202
通过文件系统 Skill provider 将 88 个研究、社交情报、营销与商业 Agent Skills 挂载到 dsh。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。