dsh-ponytail
Manifest validPonytail (lazy senior dev mode) for DeepSeek Harness: always-on smallest-complete-change rules and six ponytail skills, one bundle with no slash command.
Ponytail for DeepSeek Harness
English | 中文
Ponytail is "lazy senior dev mode": the smallest change that fully solves the task, and a reply a busy human understands in one read. This bundle ports it to DeepSeek Harness as one pluggable unit — switch it on and it applies to every session. There is no slash command to remember.
What you get (bundle on = on)
- Always-on rules. A prompt section (
ponytail:rules, order 9500) carriesPONYTAIL MODE ACTIVE — level: <level>plus the canonical rules, re-read at every step assembly, for every session in this profile, subagents included. - Six skills. The session catalog tells the model to load a skill when a
request matches, so "review this change" reaches
ponytail-reviewwithout any gesture. The five task skills can also be typed as/ponytail-review,/ponytail-audit,/ponytail-debt,/ponytail-gain,/ponytail-help; the coreponytailskill stays model-only. - A configured level.
defaultModein the row config:off,lite,full(default) orultra. No command and no state file: turn the bundle on and the configured level is what runs. - Deactivation phrases. A whole message that is exactly "stop ponytail" or "normal mode" ends the rules for this process run, as upstream does; a bundle toggle or restart restores the configured level.
Levels
defaultMode | Behavior |
|---|---|
off | No rules injected; the six skills still load on demand. |
lite | Build what was asked; name the smaller option in one line. |
full | The rules above. Default. |
ultra | Also question the request before building. |
Install
Pick any route; all of them install the same bundle (a package with a
dsh.bundle.patch).
| Route | Spec to give Plugins → Add plugin (or dsh plugin add) |
|---|---|
| GitHub | github:Vincent-chk/dsh-ponytail |
| Git URL | https://github.com/Vincent-chk/dsh-ponytail |
| Tarball | npm pack in a checkout, then the absolute path to the .tgz |
| Local checkout | the absolute path of this directory |
From the plugin market: add this index source in Plugins → Discover → Add index source and install from the card:
https://vincent-chk.github.io/dsh-ponytail/market/index.json
npm publish is prepared in PUBLISHING.md; the package is not
on npm yet.
Not the npm package named
dsh-ponytail. This bundle is@dsh-ext/dsh-ponytailand installs from this repository or the index above. An unrelated npm package uses the bare namedsh-ponytailand targets an old DSH generation; installing it fails with a compatibility error (see Troubleshooting).
Toggling the bundle off in the Plugins page removes the rules and all six skills; toggling it back on restores them.
Change the level
Add an override row to the profile's cordis.patch.yml — the loader replaces
the row's complete config, so restate the level you want:
- id: ponytail
name: '@dsh-ext/dsh-ponytail'
config:
defaultMode: lite # off | lite | full | ultra
HMR recomposes on the patch change; if it does not, toggle the bundle off and on
in the Plugins page. PONYTAIL_DEFAULT_MODE overrides the row config. Resolution
order: PONYTAIL_DEFAULT_MODE > row defaultMode > full.
Not ported, on purpose
- The Claude Code statusline/band and the local HTML board: DeepSeek Harness already shows token and cache usage, and the band is a Claude-private API.
- The
/ponytaillevel command and its state file: the bundle switch is the control, and the level is deployment configuration. The upstream sentence in the rules was adapted to say so. - Per-project levels: the level is process-wide.
shortcut:the upgrade path is registering the section peragent.ctxkeyed by session cwd. /ponytail default <mode>: the default is row config, not a command.
Verify
npm test runs two checks: test/selfcheck.mjs asserts the level grammar,
frontmatter parsing, level filtering, deactivation matching, and that all six
bundled assets are complete; test/bundle-check.mjs runs the real apply()
against a fake Cordis context and asserts the injected rules follow the
configured level, no command is registered, no state file is written, the
deactivation listener empties the section, and the skill provider serves all six
skills with registry-valid definitions.
On macOS volumes that store extended attributes as AppleDouble files (exFAT,
some network mounts), a write beside locale/*.json can leave a ._*.json
companion that the Harness locale reader rejects as a language file;
npm run clean:macos removes them, and the self-check fails until it does.
Troubleshooting
dsh-ponytail@0.2.0 is incompatible with DSH 0.2.1-rc.2 (requires
@deepseek-ai/dsh-agent, dsh-commands, dsh-llm, dsh-settings, dsh-skill,
dsh-system-prompt at ^0.1.0-rc.6)
That message comes from the unrelated npm package dsh-ponytail@0.2.0
(published 2026-08-15, built for DSH 0.1.0-rc.6), not from this bundle. Uninstall
that package in Plugins, then install this repository instead:
github:Vincent-chk/dsh-ponytail, the Git URL, or the market index above. This
bundle declares no @deepseek-ai/dsh-* peer requirements and its
engines.dsh is >=0.2.1-rc.2 <0.3.0.
License
MIT; see UPSTREAM.md for provenance. Skill bodies are upstream
content (ponytail and ponytail-help adapted for this host).
Comments
Loading…