Introduction¶
The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” In real-world development, agents can easily fall into overdesign, causing redundant code or debugging difficulties. dsh-ponytail is a DSH-compatible plugin that brings the minimalist coding principles of DietrichGebert/ponytail into the DSH workflow.
The plugin provides DSH with a structured “lazy senior developer” rule set, supports session-level mode switching, and includes a suite of skills for code simplification, review, and auditing.
Installation¶
This plugin depends on @deepseek-ai/cordis (4.0.1) and @deepseek-ai/schemastery (3.18.x), and is compatible with Node.js 22.x / 24.x. A Profile must be specified during installation (for example, web, tui, or a custom name).
Install it from the official repository:
dsh plugin --profile web add github:MengYuil/dsh-ponytail
After installation, restart the Profile (dsh web or dsh tui) for the changes to take effect.
Core Modes¶
The plugin injects a structured rule set through the /ponytail command. The core modes are divided into the following tiers. Their differences lie in the semantics of the rules, not merely in replacing Prompt fragments:
- Common (shared by all non-off tiers): Converts requests into observable completion criteria, traces the actual call path as evidence, and executes a closed loop of “check → modify → narrowest effective validation → check the final diff.” For nontrivial logic, it keeps only a minimal executable check.
- Safety (cannot be removed in any tier): Includes input validation, error handling that prevents data loss, security measures, accessibility requirements, and explicit acceptance criteria.
- lite: Reduces ceremony, executes directly, fully delivers explicit requirements, and does not challenge explicit requirements.
- full (default): Fully follows the seven-level decision ladder (YAGNI → reuse → standard library → native → installed dependencies → one-liner → minimal implementation), choosing the shortest correct implementation by default.
- ultra: Validates before adding code, prefers deletion or reuse, actively challenges speculative features, and provides a minimal correct version first for complex requirements.
- off: Does not inject any rules.
These modes are session-level; the mode setting in one session does not affect another session.
Common Commands¶
/ponytail lite|full|ultra|off: Explicitly switch the current session mode./ponytail: View the current mode status. If the current mode is off, automatically restore to a valid default tier (default is full)./ponytail status: Query the current mode and show whether it comes from a session override or a configured default./ponytail reset: Clear the current session override and follow the effective configuration again.
One-time Skills¶
The following skills are triggered one time only and do not enter the persistent Prompt. They stop after use:
/ponytail-help: Display the reference card./ponytail-review: Review the most recent changes and point out overengineering and where it occurs./ponytail-audit: Audit the entire repository for overengineering and return high-value findings./ponytail-debt: Harvestponytail:comments in the code and generate a debt ledger./ponytail-gain: Display the reference scoreboard (code reduction; Token/cost/latency effects depend on the model and task and are not guaranteed by the plugin).
Disabling and Restoring¶
The mode can be disabled at any time with the following commands:
stop ponytailnormal mode停止 ponytail关闭 ponytail普通模式正常模式
To restore it, send /ponytail.
Configuration¶
The plugin supports setting the default mode through environment variables, Profile configuration, or the user configuration file. The default mode priority is as follows:
Session override > PONYTAIL_DEFAULT_MODE environment variable > Profile cordis.patch.yml configuration > user config.json > full
Profile-level Configuration¶
Set defaultMode in the Profile’s cordis.patch.yml, for example:
- insert:
- id: ponytail
name: '@mengyuly/dsh-ponytail'
config:
defaultMode: lite
After modifying the Profile configuration, restart the Profile for the changes to take effect.
User-level Configuration¶
Set it in ~/.config/ponytail/config.json (on Windows, %APPDATA%\ponytail\config.json):
{
"defaultMode": "lite"
}
User configuration supports hot updates (about 1-second polling), and invalid values do not crash the plugin.
Dependencies and Compatibility¶
- Runtime dependencies:
@deepseek-ai/cordis(4.0.1)@deepseek-ai/schemastery(3.18.x)
- Environment requirements:
- Node.js 22.x / 24.x
- DeepSeek Harness (built from commit
b150a551)
- Compatibility:
- The
webprofile has been verified. - The
tuiandheadlessprofiles have not been fully verified.
- The
Notes¶
- Efficiency gains are conditional: The plugin reduces overdesign by increasing Prompt size, but its benefits depend on the specific task. When the task is already very simple, the benefits may be close to zero, or even incur extra input overhead. It is not a “Token-saving switch,” nor does it guarantee cost savings across models.
- Distribution package structure: The npm package does not include the
scripts/directory and does not provide an entry point for maintenance scripts. - Error handling: Configuration errors (such as invalid JSON or an invalid
defaultMode) only trigger one warning and do not spam the output. - Parent-child agents: The
subagenttool in DSH creates isolated child agents, but the global system Prompt still participates in assembly. The plugin filters subagents with regex matching viaPONYTAIL_SUBAGENT_MATCHERand does not claim parent-child Prompt inheritance.