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: Harvest ponytail: 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 ponytail
  • normal 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 web profile has been verified.
    • The tui and headless profiles have not been fully verified.

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 subagent tool in DSH creates isolated child agents, but the global system Prompt still participates in assembly. The plugin filters subagents with regex matching via PONYTAIL_SUBAGENT_MATCHER and does not claim parent-child Prompt inheritance.