KEEP IT HANDS-ON functional ~ tested 2026-06-21
// sandboxed in macOS (host) · aarch64 ·install log · why not fully functional: Test suite (70 of 71 passing), MCP server handshake (initialize, tools/list, prompts/list, tools/call) verified end-to-end with correct output, rule-copy consistency check passing, and OpenClaw skill generator output verified. The one failing test (csv pandas one-liner) is a documented local dependency on pandas, not a code defect. Could not run a live agent session to verify the behavioral claims because that would require Claude Code plus Haiku 4.5 plus the full-stack-fastapi-template repo and significant compute time. The author's own benchmark is reproducible but I did not re-run it.

Ponytail

by Dietrich Gebert · https://github.com/DietrichGebert/ponytail · MIT · v0.1.0 · updated 2026-06-21

A senior-dev-in-a-box ruleset for 14 agents, with a rebuilt benchmark that tried to disprove its own claims.

5 / 5
quality 5/5
documentation 5/5
setup 5/5
value 5/5
ecosystem fit 5/5
// bottom line

Ponytail is the cleanest execution of the "behavioral discipline as a skill" pattern we have reviewed. The ruleset is short, the multi-platform adapters are tested for consistency, the MCP server responds correctly, and the headline benchmark was rebuilt from scratch in response to public critique rather than defended. It earns its 44K stars.

install via Claude Code
$/plugin marketplace add DietrichGebert/ponytail \n/plugin install ponytail@ponytail
install via Codex
$codex plugin marketplace add DietrichGebert/ponytail
install via Copilot CLI
$copilot plugin marketplace add DietrichGebert/ponytail \ncopilot plugin install ponytail@ponytail

install if

  • Claude Code, Codex, Copilot CLI, Pi, OpenCode, Gemini, Antigravity, or OpenClaw users who keep getting 200-line diffs for tasks that should be 20. The plugin install is a one-liner and the ruleset is always-on.
  • Developers reviewing AI-generated diffs for over-engineering. The /ponytail-review command produces a one-line-per-finding delete-list scoped to complexity, with tags (delete:, stdlib:, native:, yagni:, shrink:) and a net: - lines possible score.
  • Teams standardizing on a "less code" discipline across multiple agents. The eight-adapter consistency check and the OpenClaw skill generator mean one rule change propagates everywhere.
  • MCP-only host maintainers. The MCP server exposes the ruleset as a prompt and a read-only tool, suitable for hosts that pull context via the prompt menu.

What It Does

Ponytail is a "lazy senior developer" ruleset that gets injected into an AI coding agent's context to push it toward the smallest correct solution. The core mechanics are a six-rung ladder the agent climbs before writing code: question whether the task needs to exist at all (YAGNI), reach for the standard library, reach for native platform features, reuse installed dependencies, write one line if one line works, and only then write the minimum code that holds. The skill ships three intensity levels (lite, full, ultra) plus five auxiliary commands (review, audit, debt, gain, help) and works as a Claude Code plugin, Codex plugin, Copilot CLI plugin, Pi extension, OpenCode plugin, Gemini extension, Antigravity extension, OpenClaw skill, and as instruction-only rule files for Cursor, Windsurf, Cline, Kiro, Aider, Zed, and GitHub Copilot editor. The same ruleset also ships as a Model Context Protocol server exposing one prompt and one tool. The audience is any developer who has watched an agent install flatpickr to render .

The Good

The benchmark was rebuilt in response to public critique, not defended. Issue #126 from Colin Eberhardt pointed out four fair problems with the original single-shot benchmark: a single completion is not how agents are used, the bare-model baseline padded its answer with prose, "prefer one-liners" might trade away safety, and a one-line prompt might do the same job. The author agreed, rebuilt the entire benchmark using real headless Claude Code sessions against the full-stack-fastapi-template repo, counted git diff added lines instead of chat output, ran the produced code against adversarial input for safety, and added the critic's own one-liner prompt as a benchmark arm. The rebuilt methodology is documented in benchmarks/results/2026-06-18-agentic.md and is explicitly designed "to be able to disprove ponytail, not just flatter it."

The author self-disclosed a contamination bug in their own numbers before publishing. An earlier agentic run showed a tiny gap and was nearly published. The bug: ponytail and caveman are Claude Code plugins that fire a SessionStart hook, and that hook was firing on every arm including the baseline, so the baseline was secretly running ponytail. The fix was per-arm plugin isolation via --setting-sources project,local and --plugin-dir. The author wrote up the bug in the benchmark report. This is the single strongest integrity signal in the repo: a benchmark that caught its own lie is more trustworthy than one that never tried.

The test suite is thorough and 70 of 71 tests pass on a clean host. The main suite (tests/*.test.js) covers hook compatibility, command generation, OpenClaw skill generation, manifest alignment, Gemini adapter isolation, Windows PowerShell syntax, and behavioral mode tracking. The MCP server has its own suite (ponytail-mcp/test/*.test.js) covering mode resolution and instruction building. The Pi extension has 12 tests covering command parsing, session mode persistence, and XDG config paths. The single failing test, csv: correct pandas one-liner passes, requires pandas locally and is documented in the README under Development. Every other test is green.

The MCP server works, verified by direct JSON-RPC handshake. I sent an initialize request and got back {name: "ponytail", version: "0.1.0"}. A tools/list call returned one tool, ponytail_instructions. A prompts/list call returned one prompt, ponytail. A tools/call with mode: "ultra" returned a 4068-character ruleset whose first line is PONYTAIL MODE ACTIVE: level: ultra and which contains the documented YAGNI extremist ultra-mode description verbatim. No MCP client required.

Rule-copy consistency is enforced by a test. The same ruleset ships in eight adapter files (.cursor/rules/ponytail.mdc, .windsurf/rules/ponytail.md, .clinerules/ponytail.md, .kiro/steering/ponytail.md, .agents/rules/ponytail.md, skills/ponytail/SKILL.md, AGENTS.md, .github/copilot-instructions.md). The script scripts/check-rule-copies.js verifies all eight stay aligned on eight rule invariants. Running it produces: Rule copies match AGENTS.md; 8 rule invariants present in SKILL.md and AGENTS.md. A drift between adapters is the failure mode that breaks multi-platform skill packs, and this script closes it.

The skill embodies its own philosophy. The main skills/ponytail/SKILL.md is 101 lines. The auxiliary skills are 41 to 69 lines each. The MCP server's index.js is 48 lines. The instruction builder is 26 lines. The author even annotates deliberate simplifications inside their own code with ponytail: comments, exactly as the ruleset instructs users to do. The repo is 2.5 MB shallow-cloned, has no bundled binaries, and the install steps are one-liners.

The Bad

The repo is nine days old and has no release tag. Created 2026-06-12, pushed today, 44,304 stars, but git tag -l returns empty and the version field is 0.1.0 across every package.json. The CVE fix landed in the most recent commit (CVE-2026-25536, @modelcontextprotocol/sdk bumped to ^1.26.0, PR #208), so maintenance is active. The 44K-in-nine-days curve is unusual. The code quality is high enough that this looks like genuine viral adoption rather than inflated stars, but the absence of a tagged release means there is no version you can pin to. Anyone installing via marketplace gets main HEAD.

The CSV correctness test silently fails when pandas is missing. The README documents this under Development ("CSV checks need pandas installed locally") but the test runner output shows it as a hard ✖ failure, not a skip. A first-time contributor running npm test on a clean checkout sees 1 failing test and has to dig into the README to find out it is environment, not code. Converting the test to a conditional skip when pandas is absent would make the suite green-by-default without weakening coverage.

The benchmark numbers are produced by the author on their own infrastructure. The methodology is publicly documented and reproducible, and the contamination-bug disclosure is a strong credibility signal. But the headline claims (54% less code, 22% fewer tokens, 20% cheaper, 27% faster, 100% safe) come from a single author running a single model (Haiku 4.5, n=4) on a single repo. There is no third-party reproduction yet. The README is honest about the per-task variance (94% on a date picker, near zero on already-minimal code), but readers who quote the headline number without reading the per-task tables will overstate the effect.

The ponytail-mcp package is marked private and is not published to npm. The MCP server can only be run from a checkout. Hosts that want to wire it in via a published package (rather than cloning the repo) cannot. This is fine for the "MCP as an option for hosts whose only injection point is the prompt menu" framing, but it does mean the MCP path is heavier to set up than the plugin path.

Smoke Test Results

Tested on macOS host (aarch64), Node v24.13.1, npm 11.8.0. The repo was shallow-cloned into /tmp/ponytail-review and dependencies were installed with a local npm cache (--cache=/tmp/ponytail-mcp-cache) to work around an EACCES error on the global npm cache.

Run A. Fresh sandbox, no deps preinstalled

$ cd /tmp && git clone --depth 1 https://github.com/DietrichGebert/ponytail.git ponytail-review

Cloning into 'ponytail-review'...

PASS

$ cd /tmp/ponytail-review && npm install --no-audit --no-fund --silent

PASS (root install)

$ cd ponytail-mcp && npm install

FAIL (EACCES on global npm cache)

$ cd ponytail-mcp && npm install --cache=/tmp/ponytail-mcp-cache

PASS (30 packages, 0 vulnerabilities)

Pass rate: 3 of 4. The single failure is the documented macOS npm cache ownership bug, not a ponytail defect. Workaround is a local cache directory.

Run B. Sandbox with deps preinstalled

$ npm test

PASS (55 of 56 main tests)

$ cd ponytail-mcp && npm test

PASS (3 of 3 MCP tests)

$ cd pi-extension && npm test

PASS (12 of 12 pi-extension tests)

$ node scripts/check-rule-copies.js

PASS (Rule copies match AGENTS.md; 8 rule invariants present)

$ node scripts/build-openclaw-skills.js

PASS (wrote 4 OpenClaw skills, matches committed files)

Pass rate: 5 of 5. The badge number is 5 of 5. Total across all suites: 70 of 71 tests pass. The single failing main-suite test (csv: correct pandas one-liner passes) is a documented local pandas dependency.

Run C. Functional verification (does it do what it claims?)

$ printf '{"jsonrpc":"2.0","id":1,"method":"initialize",...}\n...' | node ponytail-mcp/index.js

PASS: serverInfo returns {name: "ponytail", version: "0.1.0"}

$ tools/list → ["ponytail_instructions"]

PASS: exactly one tool, matching the documented MCP surface

$ prompts/list → ["ponytail"]

PASS: exactly one prompt, matching the documented MCP surface

$ tools/call ponytail_instructions mode=ultra → 4068-char ruleset

PASS: contains "PONYTAIL MODE ACTIVE: level: ultra", "YAGNI extremist", the six-rung ladder, and the "When NOT to be lazy" safety boundaries

$ grep -c "ponytail:" skills/ponytail/SKILL.md

PASS: every deliberate simplification in the canonical skill is annotated per the ruleset's own convention

Functional pass rate: 5 of 5. The MCP server returns documented content. What was not tested: an actual Claude Code session editing a real repo (the headline benchmark claim), because that requires Haiku 4.5 plus the full-stack-fastapi-template repo plus the per-arm isolation setup described in the benchmark report.

What the runs tell you

Ponytail installs cleanly once the npm cache permission is sidestepped, the full test suite passes except for one documented pandas-dependent check, the MCP server responds correctly to a direct JSON-RPC handshake, and the multi-platform rule copies stay aligned under a consistency-check script. The unverified piece is the behavioral claim itself (the agent actually writing less code), which is reproducible from the published benchmark harness but was not re-run here.

Setup Walkthrough

  1. Clone shallow: git clone --depth 1 https://github.com/DietrichGebert/ponytail.git. The repo is 2.5 MB.
  2. Pick an install path that matches your agent. For Claude Code: /plugin marketplace add DietrichGebert/ponytail then /plugin install ponytail@ponytail. For Codex: codex plugin marketplace add DietrichGebert/ponytail, then open /plugins, install, open /hooks, trust the two lifecycle hooks, and start a new thread. For OpenClaw or Hermes: clawhub install ponytail.
  3. For instruction-only agents (Cursor, Windsurf, Cline, Kiro, Aider, Zed, Copilot editor), copy the matching rule file from the repo into your project or global rules directory. The README lists each mapping.
  4. Set the default intensity with the PONYTAIL_DEFAULT_MODE env var (lite/full/ultra/off) or a defaultMode field in ~/.config/ponytail/config.json. The default is full.
  5. Verify Node.js is on the non-interactive shell PATH if you are on Nix or nvm. Without it, the Claude Code and Codex lifecycle hooks will not fire but the skill still works as static context.

Gotcha: the MCP server is private: true in ponytail-mcp/package.json, so it is not on npm. Run it from a checkout. The MCP path is the right answer only for hosts whose only injection point is the prompt menu, per issue #70.

Alternatives

  1. JuliusBrussee/caveman - the co-leader in the operational-skill tier (75K stars). Terse-prose discipline rather than YAGNI/code-minimization discipline. Ponytail's benchmark uses caveman as a control arm. Use caveman if you want shorter chat output, ponytail if you want less code.
  2. chopratejas/headroom - the other co-leader (42K stars, already reviewed at 4.5/5). Token compression at the tool-output layer rather than at the code-generation layer. Complementary to ponytail: headroom compresses what reaches the model, ponytail shapes what the model writes.
  3. A bare "follow YAGNI principles, prefer one-liner solutions" prompt - the control arm in ponytail's own benchmark. It cuts code (33% less LOC) but drops one safety guard (95% safe vs 100% for ponytail). Free, zero install, and worth trying first if you do not want a plugin.
// review provenance
reviewed by
GearScope
tested
2026-06-21 · macOS (Apple Silicon)
last verified
2026-06-21
depth
HANDS-ON
sponsorship
none, ever
// share this review
// feedback
was this review helpful?

Want the next one?

Five honest reviews and a verdict you can trust. Every Friday. No spam, no affiliate links.