dsh-ponytail
English · 点击下方「中文」切换中文
A DeepSeek Harness plugin that installs the Ponytail "lazy senior developer" ruleset. It mirrors upstream's two-layer split:
- an always-on, mode-switchable system-prompt section built from the compact ruleset (~2.5 KB), and
- the full ruleset + 5 companion skills as on-demand
/ skills.
This repo vendors no skill content. On first boot it fetches once from upstream DietrichGebert/ponytail, caches to disk, and never re-fetches or hand-syncs afterwards.
What it does
- Always-on section (lean) — the compact ruleset (
.agents/rules/ponytail.md, ~2.5 KB) as a system-prompt section, cached at ~/.dsh/ponytail-cache/compact.md. Switch the level per session with /ponytail lite|full|ultra|off; off empties the section so the tokens are actually saved. Default full.
- On-demand skills — the full ruleset (
ponytail) and the 5 companions (ponytail-help / ponytail-audit / ponytail-debt / ponytail-gain / ponytail-review) written once to ~/.dsh/skills/<name>/SKILL.md, invocable from the / palette.
Install
dsh plugin --profile web add github:njuptlzf/dsh-ponytail
# without a global dsh:
npx @deepseek-ai/dsh plugin --profile web add github:njuptlzf/dsh-ponytail
Restart dsh web after install. The first boot fetches once and caches, so later boots — online or offline — never touch the network. To update the skills, delete the corresponding cache/skill files and restart.
Usage
/ponytail — report the current level; /ponytail lite|full|ultra|off — switch it. Mode is per-session (agent.id), so one conversation's off does not affect another.
- The 6 skills stay in the
/ palette; name them (e.g. "audit for over-engineering") and the model loads them on its own.
dsh-ponytail vs codex-ponytail
| codex-ponytail (upstream Codex plugin) | dsh-ponytail (this plugin) |
|---|
| Mechanism | Codex plugin: SessionStart + SubagentStart + UserPromptSubmit lifecycle hooks | DSH bundle: systemPrompt section + commands service |
| Always-on content | full ruleset, mode-filtered, at SessionStart | compact ruleset (~2.5 KB) every step |
| Per-turn cost | full rules only at session start / compact / subagent; one mode line per turn | ~2.5 KB re-rendered per step (DSH systemPrompt per-step semantics) |
off | UserPromptSubmit stops injecting, tokens saved | section renders empty, tokens saved (parity) |
| Levels | lite/full/ultra filter the full ruleset's per-mode rows | level carried as header + behavior; per-mode detail lives in the on-demand full skill |
| Session isolation | single-session process → process-level flag file | multi-session process → per agent.id (== session.id) |
| Compaction | SessionStart re-fires on the compact matcher | compaction only shatters history, never the system prompt (inherent) |
| Subagents | SubagentStart + PONYTAIL_SUBAGENT_MATCHER | global section inherits into subagents via composition (no patch expected) |
| On-demand detail | ponytail skill | ponytail skill (parity) |
| Fallback | inline getFallbackInstructions | TODO (see OPTIMIZATION_PLAN.md) |
Structure
dsh-ponytail/
├── index.js # host plugin: fetch once → compact always-on + mirror full/companions
├── package.json # dsh.bundle.patch declaration
├── cordis.patch.yml # mount row
├── OPTIMIZATION_PLAN.md # full design rationale + comparison
├── README.md
└── LICENSE # MIT
Attribution
Skill content comes from DietrichGebert/ponytail (MIT), fetched at runtime. The plugin wrapper is MIT © 2026 Kasakaze (njuptlzf).
中文 · 点击上方「English」切换英文
一个 DeepSeek Harness 插件:把 Ponytail「懒高级工程师」规范接入进来,对标上游的两层结构:
- 常驻、可按档切换的 system-prompt section,用 精简规则(~2.5 KB)构建;
- 全文规则 + 5 个同伴技能作为按需
/ skill。
本仓库不存技能内容——首次启动从上游 DietrichGebert/ponytail 抓取一次并落盘缓存,之后不再联网、永不手工同步。
它做什么
- 常驻 section(精简) — 精简规则(
.agents/rules/ponytail.md,~2.5 KB)作为 system-prompt section,缓存于 ~/.dsh/ponytail-cache/compact.md。用 /ponytail lite|full|ultra|off 按会话切档;off 会让 section 渲染为空、真的省回 token。默认 full。
- 按需 skills — 全文规则(
ponytail)和 5 个同伴(ponytail-help / ponytail-audit / ponytail-debt / ponytail-gain / ponytail-review)写入 ~/.dsh/skills/<name>/SKILL.md,/ 面板可调。
安装
dsh plugin --profile web add github:njuptlzf/dsh-ponytail
# 无全局 dsh:
npx @deepseek-ai/dsh plugin --profile web add github:njuptlzf/dsh-ponytail
安装后重启 dsh web:首次启动联网抓取一次并缓存,之后无论在线离线都不再联网。要更新技能,删对应缓存/技能文件再重启即可触发重抓。
使用
/ponytail — 报告当前档;/ponytail lite|full|ultra|off — 切档。档位按会话(agent.id)隔离,一个会话的 off 不影响其它会话。
- 6 个技能常驻
/ 面板;直接说「audit for over-engineering」等关键词,模型会按描述自行加载。
dsh-ponytail vs codex-ponytail
| codex-ponytail(上游官方 Codex 插件) | dsh-ponytail(本插件) |
|---|
| 接入机制 | Codex 插件:SessionStart + SubagentStart + UserPromptSubmit 三个 lifecycle hook | DSH bundle:systemPrompt section + commands 服务 |
| 常驻内容 | SessionStart 时注入全文(按 mode 过滤) | 每步注入精简规则(~2.5 KB) |
|