用七级阶梯约束 AI 少写代码,专治过度工程
29.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/hoyyang/dsh-best-ponytail.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/9/30) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0🔴 扫描:高危尚无人工评估
静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。
命令参数由运行时变量拼接读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 46 处,展示前 46 条)
- 读取本地文件lib/index.js:90
entries = await readdir(dir, { withFileTypes: true }); - 读取本地文件lib/index.js:100
const text = await readFile(p, 'utf8'); - 读取本地文件lib/index.js:138
const text = await readFile(candidate.locator, 'utf8'); - 读取本地文件lib/index.js:170
rulesetBody = parseFrontmatter(readFileSync(UPSTREAM_RULESET, 'utf8')).body.trim(); - 读取本地文件upstream/benchmarks/claude-email.js:4
const skill = fs.readFileSync(path.join(__dirname, '..', 'skills', 'ponytail', 'SKILL.md'), 'utf8'); - 读取本地文件upstream/benchmarks/claude-email.js:9
const kv = Object.fromEntries(fs.readFileSync(path.join(__dirname, '..', '.env'), 'utf8') - 请求外部主机api.anthropic.comupstream/benchmarks/claude-email.js:17
const r = await fetch('https://api.anthropic.com/v1/messages', { method: 'POST', - 发起网络请求upstream/benchmarks/claude-email.js:17
const r = await fetch('https://api.anthropic.com/v1/messages', { method: 'POST', - 执行外部命令来自配置/变量upstream/benchmarks/correctness.js:43
execSync(cmd, { timeout: correctnessTimeoutMs(), encoding: 'utf8', stdio: 'pipe', ...opts }); - 写入本地文件upstream/benchmarks/correctness.js:67
fs.writeFileSync(p, content); - 删除本地文件upstream/benchmarks/correctness.js:127
fs.unlinkSync(f); - 删除本地文件upstream/benchmarks/correctness.js:172
fs.unlinkSync(f); - 删除本地文件upstream/benchmarks/correctness.js:221
try { fs.unlinkSync(f); } catch (e) {} - 删除本地文件upstream/benchmarks/correctness.js:222
try { fs.unlinkSync(csvPath); } catch (e) {} - 读取本地文件upstream/benchmarks/generate-examples.mjs:7
const j = JSON.parse(readFileSync(new URL('./output.json', import.meta.url), 'utf8')); - 写入本地文件upstream/benchmarks/generate-examples.mjs:42
writeFileSync(new URL(`../examples/${slug}.md`, import.meta.url), md); - 写入本地文件upstream/benchmarks/generate-examples.mjs:62
writeFileSync(new URL('../examples/README.md', import.meta.url), readme); - 读取本地文件upstream/benchmarks/model-email.js:4
const skill = fs.readFileSync(path.join(__dirname, '..', 'skills', 'ponytail', 'SKILL.md'), 'utf8'); - 读取本地文件upstream/benchmarks/model-email.js:9
const kv = Object.fromEntries(fs.readFileSync(path.join(__dirname, '..', '.env'), 'utf8') - 请求外部主机api.openai.comupstream/benchmarks/model-email.js:17
const r = await fetch('https://api.openai.com/v1/chat/completions', { method: 'POST', - 发起网络请求upstream/benchmarks/model-email.js:17
const r = await fetch('https://api.openai.com/v1/chat/completions', { method: 'POST', - 执行外部命令运行时拼接upstream/benchmarks/robustness-audit.js:16
try { execSync(`${cmd} -c "import sys"`, { stdio: 'pipe' }); pythonCmd = cmd; return pythonCmd; } - 读取本地文件upstream/benchmarks/robustness-audit.js:27
kv = Object.fromEntries(fs.readFileSync(path.join(ROOT, '.env'), 'utf8') - 读取密钥环境变量upstream/benchmarks/robustness-audit.js:31
const KEY = process.env.OPENAI_API_KEY || kv.OPENAI_API_KEY; - 读取本地文件upstream/benchmarks/robustness-audit.js:32
const SKILL = fs.readFileSync(path.join(ROOT, 'skills', 'ponytail', 'SKILL.md'), 'utf8'); - 写入本地文件upstream/benchmarks/robustness-audit.js:149
fs.writeFileSync(f, harness); - 执行外部命令运行时拼接upstream/benchmarks/robustness-audit.js:150
try { execSync(`${python()} "${f}"`, { timeout: 10000, encoding: 'utf8', stdio: 'pipe' }); return true; } - 删除本地文件upstream/benchmarks/robustness-audit.js:152
finally { try { fs.unlinkSync(f); } catch (_) {} } - 请求外部主机api.openai.comupstream/benchmarks/robustness-audit.js:158
const r = await fetch('https://api.openai.com/v1/chat/completions', { - 发起网络请求upstream/benchmarks/robustness-audit.js:158
const r = await fetch('https://api.openai.com/v1/chat/completions', { - 读取本地文件upstream/hooks/ponytail-activate.js:66
if (fs.existsSync(settingsPath)) { - 读取本地文件upstream/hooks/ponytail-activate.js:68
const raw = fs.readFileSync(settingsPath, 'utf8').replace(/^ FEFF/, ''); - 读取本地文件upstream/hooks/ponytail-activate.js:79
if (!hasStatusline && !fs.existsSync(nudgeFlagPath)) { - 写入本地文件upstream/hooks/ponytail-activate.js:80
try { fs.writeFileSync(nudgeFlagPath, ''); } catch (e) { } - 读取本地文件upstream/hooks/ponytail-config.js:90
const config = JSON.parse(fs.readFileSync(configPath, 'utf8').replace(/^ FEFF/, '')); - 读取本地文件upstream/hooks/ponytail-config.js:112
const config = JSON.parse(fs.readFileSync(getConfigPath(), 'utf8').replace(/^ FEFF/, '')); - 读取本地文件upstream/hooks/ponytail-config.js:129
const config = JSON.parse(fs.readFileSync(getConfigPath(), 'utf8').replace(/^ FEFF/, '')); - 写入本地文件upstream/hooks/ponytail-config.js:142
fs.mkdirSync(path.dirname(configPath), { recursive: true }); - 读取本地文件upstream/hooks/ponytail-config.js:145
config = JSON.parse(fs.readFileSync(configPath, 'utf8').replace(/^ FEFF/, '')); - 写入本地文件upstream/hooks/ponytail-config.js:149
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf8'); - 读取本地文件upstream/hooks/ponytail-instructions.js:88
filterSkillBodyForMode(fs.readFileSync(SKILL_PATH, 'utf8'), effectiveMode); - 写入本地文件upstream/hooks/ponytail-runtime.js:42
fs.mkdirSync(path.dirname(statePath), { recursive: true }); - 写入本地文件upstream/hooks/ponytail-runtime.js:43
fs.writeFileSync(statePath, mode); - 删除本地文件upstream/hooks/ponytail-runtime.js:47
try { fs.unlinkSync(statePath); } catch (e) {} - 读取本地文件upstream/hooks/ponytail-runtime.js:53
return fs.readFileSync(statePath, 'utf8').trim() || null; - 读取本地文件upstream/hooks/ponytail-runtime.js:69
return fs.existsSync(rule) ? rule : null;
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:api.anthropic.com、api.openai.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 七级最小代码阶梯
- 六个技能命令
- 可选常驻注入
Ponytail 懒资深开发规则集,给 DeepSeek Harness 用:7 级最小代码阶梯、六个技能(review/audit/debt/gain/help)、/ponytail 会话命令、可选常驻注入。MIT 协议,上游未改动。
README
由 DeepSeek 最新模型翻译生成dsh-best-ponytail
banner
把 ponytail(MIT)装进 DeepSeek Harness:让 AI agent 像屋里最懒的资深工程师那样写代码——最好的代码是你永远不用写的那行。
English · Releases · 更新日志
安装
dsh plugin add dsh-best-ponytail # npm 渠道(独占安装名)
dsh plugin add github:hoyyang/dsh-best-ponytail # 或 GitHub 渠道
零配置开箱即用:装上后默认零行为改变(常驻注入缺省关闭,6 个技能即刻可用)。实测最低 dsh 版本 0.1.5。npm 包名 dsh-best-ponytail(原名 dsh-ponytail 被第三方占用故改名)+ GitHub 双渠道分发。
展开完整文档(README 剩余 1 节)
dsh-best-ponytail banner 把 ponytail(MIT)装进 DeepSeek Harness:让 AI agent 像屋里最懒的资深工程师那样写代码——最好的代码是你永远不用写的那行。 English · Releases · 更新日志 安装 dsh plugin add dsh-best-ponytail # npm 渠道(独占安装名) dsh plugin add github:hoyyang/dsh-best-ponytail # 或 GitHub 渠道 零配置开箱即用:装上后默认零行为改变(常驻注入缺省关闭,6 个技能即刻可用)。实测最低 dsh 版本 0.1.5。npm 包名 dsh-best-ponytail(原名 dsh-ponytail 被第三方占用故改名)+ GitHub 双渠道分发。 有啥用 六个技能(被动触发 + 显式点名) - ponytail 主规则——写代码前先过 7 级懒人阶梯:要做吗 → 库里有吗 → 标准库 → 平台原生 → 已装依赖 → 一行 → 最小可用实现 - ponytail-review——只审过度工程的专项 review:标库重复造的轮子、多余依赖、投机抽象、死灵活性,每条一行「在哪、删什么、换什么」 - ponytail-audit——全仓 bloat 审计:按优先级排出整个代码库里该删、该简化、该换标库的清单,只报告不动手 - ponytail-debt——收割代码里所有 ponytail: 标记注释,汇总成欠账台账,让「以后再说」不变成「永不」 - ponytail-gain——上游基准计分板:更少代码、更低成本、更快速度的中位数成绩单 - ponytail-help——全模式速查卡:技能、命令、档位一览 一个命令,随时调档 - /ponytail 调档——lite / full / ultra / off 会话级切换,下一轮生效 - /ponytail status——查看当前档位、来源(config 默认还是会话覆盖) - /ponytail reset——清掉会话覆盖,回到配置默认 可选常驻注入(上游 hook 的 DSH 等价物) - systemPrompt 区块注入——把懒人阶梯焊进每轮系统提示词,写代码 100% 在规则之下,小改动也不漏 - config 四档——off / lite / full / ultra,full 为上游基准实测档 - 会话级覆盖——/ponytail off 单会话临时关,重启回配置默认 打包特性 - 上游内容零改动——skills、hooks、benchmarks、docs 等 193 个文件原样 vendored 于 upstream/ 目录,可溯源(钉在 commit e3ba2aa) - 零工具注册——不进 tools schema,不占上下文预算,卸载零残留 - MIT + 归属声明——上游 © DietrichGebert,适配层同 MIT 30 秒上手 1. 执行 dsh plugin add dsh-best-ponytail 2. 什么也不用配——6 个技能已进技能目录,编码任务自动可用 3. 想验证:对 agent 说「ponytail,帮我写个 XX」,回复结尾应出现 skipped: X, add when Y 4. 想看档位:输入框敲 /ponytail status 5. 想要常驻:profile 配置里把 mode 改成 full(见下方配置示例) 6. 想审过度设计:说「audit this codebase」 7. 想查技术债:说「ponytail debt」 8. 单会话免打扰:/ponytail off 9. 回到默认:/ponytail reset 10. 卸载:dsh plugin remove dsh-best-ponytail,进程外零残留 日常使用 - 装完后什么都不用做——编码任务里懒人阶梯自动可用,技能目录随时可见 - 想 100% 覆盖写代码场景:把配置 mode 开成 full,每轮系统提示词都带着阶梯 - 临时要极简:说「ponytail ultra」,agent 会先反问需求是否需要存在 - 临时要温和:说「ponytail lite」,agent 照常实现但附一句更懒的替代方案 - 写完想返工:说「review for over-engineering」,拿到删除清单再决定 - 接手陌生仓库:先跑「audit this codebase」,按排名从高往低瘦 - 长期项目:定期「ponytail debt」,欠账台账防止口头承诺蒸发 - 汇报优化成果:说「ponytail gain」,拿上游基准计分板当参考 - 忘了怎么用:说「ponytail help」,速查卡直接列出全部模式与命令 - 多会话并行:每个会话的档位互相独立,/ponytail off 只影响当前会话 使用场景 - 快速原型——一句「做个 XX」不再带回 5 个依赖 3 层抽象,标库和原生特性能解决的不装包 - 老项目重构——review 模式专挑能删的:重复实现的标库函数、没人用的配置项、为「以后」准备的脚手架 - 代码审查补刀——正确性 review 之外,专职猎杀复杂度,每条发现一行说完 - 技术债盘点——周期性跑 debt 台账,把「以后再说」变成看得见的清单 - 多 agent 一致性——团队每人 DSH 装同款规则集,产出风格统一,审查省心 - 成本与速度优化——少写代码,token 消耗更少、交付更快;上游实测成本 -20%、耗时 -27% - 学习写作范式——看 agent 如何先问「要不要存在」再动手,反向训练自己的取舍 - 大仓瘦身——audit 排名清单直接当重构 backlog 用 - 依赖治理——阶梯第 5 级强制先查已装依赖,遏制「为一个函数装一个库」 - 升级/换模型回归——规则集与模型解耦,换模型不换规矩 输入与输出 真实回显样例(会话内实拍): $ /ponytail status ponytail always-on injection: FULL (config default) — injected into the system prompt, effective next turn Skills (passive + explicit) are available regardless of this setting. Switch: /ponytail lite|full|ultra|off · /ponytail reset (back to config default: full) $ /ponytail ultra ponytail always-on injection set to ULTRA for THIS session — effective next turn. ponytail always-on injection: ULTRA (session override) — injected into the system prompt, effective next turn Skills (passive + explicit) are available regardless of this setting. Switch: /ponytail lite|full|ultra|off · /ponytail reset (back to config default: full) | 你说 / 你敲 | 得到 | | /ponytail status | 当前档位 + 来源 + 切换提示 | | /ponytail ultra | 本会话切 YAGNI 极端档,下一轮生效 | | 「ponytail,加个缓存」 | 先过阶梯的最小实现 + skipped 一行说明 | | 「review for over-engineering」 | 每条一行的删除清单:位置 / 删什么 / 换什么 | | 「audit this codebase」 | 全仓 bloat 排名清单,只报告不改码 | | 「ponytail debt」 | 全库 ponytail: 注释汇总台账 | | 「ponytail gain」 | 上游基准计分板(-54% 代码 / -20% 成本 / -27% 耗时) | | 「stop ponytail」 | 本会话回到自然风格 | 产出 - 最小实现 diff——阶梯通过后的最短可用改动,不带没人要的抽象层 - skipped 一行说明——每次偷懒都留痕:跳过了什么、什么时候该加回来 - review 删除清单——每条一行:位置 / 删什么 / 换成什么 - audit 排名报告——全仓过度工程优先级排名,可直接当重构 backlog - debt 欠账台账——全库 ponytail: 注释的汇总清单,含升级路径 - gain 计分板——上游基准中位数:代码 -54% / 成本 -20% / 耗时 -27% - status 状态文本——当前档位、来源、切换方法的即时回显 - installable tgz——GitHub Release 预构建包,dsh plugin add 一条命令装机 进阶用法(配置) 常驻注入档位在 profile 配置里调(缺省 off): - id: dsh-best-ponytail config: mode: full # off | lite | full | ultra 工作原理 bundle 插件三层映射上游概念:skills/ 经 ctx.skills provider 注册为 DSH 技能(description 匹配被动触发);上游 SessionStart hook 的「每轮注入规则集」改由 ctx.systemPrompt 区块实现,config.mode 控制开关、会话内 /ponytail 可覆盖(内存态,零残留);上游 commands/ponytail.toml 的调档语义映射为 host 命令 /ponytail。其余上游文件原样 vendored 仅供溯源。 可靠性与验收 - 冒烟测试:mock ctx 跑真实 apply()——6 技能注册、阶梯正文可达、档位状态机、未知档位报用法,全部断言通过(npm test) - 冷启动检测:boot-check 六类静态检测(junction / bundle manifest / disabled 矛盾 / 运行时导入 / client 注册一致性 / insert id 重复)全绿 - 生命周期:注入→卸载→再注入两轮实测,技能目录实时出现/消失,junction 删除,残留检查 PASS - fail loud:技能树缺失、规则文件不可读、非法 config 直接抛错点名对象,无静默回退 - 安全边界:不碰凭据、零新工具、依赖仅 schemastery(^3.18.0 锁范围)、无安装脚本 - 内容保真:上游 193 文件逐字节未改,commit 钉死可审计 - 兼容性:实测 dsh 0.1.5 web profile;headless profile 缺 services 时降级并告警 - 升级安全:profile 配置改动先备份(.bak-时间戳)再落盘,可一键还原 - 归属清晰:上游 MIT 独立声明,适配层代码仅 lib/index.js 一个文件 - 已知限制:收益集中在 agent 过度建设场景,代码本已精简时收益趋零;npm 名 dsh-ponytail 被第三方占用,故改名 dsh-best-ponytail 发布 常见问题装完为什么没变化?——默认 mode: off:技能已可用(被动触发 + 显式点名),常驻注入需显式开启。这是有意的最小惊讶设计。 和 npm 上那个 dsh-ponytail 什么关系?——无关联。那是第三方独立实现(ccll,2026-08);本包因重名改名 dsh-best-ponytail 发布(npm + GitHub 双渠道)。 被动触发会漏吗?——会,这是所有按需加载 skill 的物理上限。要写代码 100% 在规则之下,把 mode 开成 full。 上游的 benchmarks/tests 也打进来了?——是,全部 vendored 于 upstream/,仅作溯源参考件,不在 DSH 自动运行。 本地构建 npm install && npm run build && npm test # 纯 JS 无转译:语法校验 + 冒烟测试 许可证 MIT。上游 ponytail © DietrichGebert(MIT),本包仅做 DSH 适配打包,上游内容未修改;适配层代码同以 MIT 发布。详见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hoyyang/dsh-best-ponytail
用七级阶梯约束 AI 少写代码,专治过度工程
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7