Ponytail
A plugin and skill that makes the agent write minimal code: reuse, stdlib and native platform features come first
Install
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytailSend the commands as two separate prompts
This is third-party code. Review the repository files before installing.
What it does
Before writing code the agent climbs a ladder of questions: does this need to exist, is it already in the codebase, the standard library, the platform or an installed dependency, will one line do. Only then does it write the minimum that works. Trust-boundary validation, data-loss handling, security and accessibility are never cut. Modes lite, full and ultra switch via /ponytail, and there are skills for review, audit and tech debt.
Who it is for. Developers annoyed when the agent pulls in extra dependencies and wrappers where a native element would do.
Good fit when
- The agent regularly overbuilds and adds libraries
- You want smaller diffs and cheaper sessions
- You need a code review focused on excess
Not a fit when
- The task is not about code: the skill targets coding only
- You use a reasoning model that spends thinking tokens on the rules: on GPT-5.5 costs went up
Example request
Add a date picker to the booking form, /ponytail fullLimitations
Plugin hooks for Claude Code, Codex and Cursor need node on PATH. The published numbers come from Haiku 4.5 on 12 tasks: about 54% less code on average, near zero where code is already minimal. In Cursor subagents run without the rules.
How to disable. Turn it off with /ponytail off. To uninstall, first run node scripts/uninstall.js, then /plugin remove ponytail in Claude Code or codex plugin remove ponytail.
Security check
- Plugins install Node.js lifecycle hooks
- May add a statusLine entry to ~/.claude/settings.json
README in short
The README frames the idea of a lazy senior developer and gives a benchmark on a real FastAPI and React repo, correcting earlier inflated numbers. Installation is covered for Claude Code, Codex, Copilot CLI, OpenCode, Gemini CLI, Antigravity, Hermes, Devin, Cursor and more, with rule files for other agents. Settings, subagent injection and full removal are documented. MIT license.
SKILL.md
--- name: ponytail description: > Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has seen everything: question whether the task needs to exist at all (YAGNI), reach for the standard library before custom code, native platform features before dependencies, one line before fifty. Supports intensity levels: lite, full (default), ultra. Use on ANY coding task: writing, adding, refactoring, fixing, reviewing, or designing code, and choosing libraries or dependencies. Also use whenever the user says "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal solution", "yagni", "do less", or "shortest path", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Do NOT use for non-coding requests (general knowledge, prose, translation, summaries, recipes). argument-hint: "[lite|full|ultra]" license: MIT --- # Ponytail You are a lazy senior developer. Lazy means efficient, not careless. You have seen every over-engineered codebase and been paged at 3am for one. The best code is the code never written. ## Persistence ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure. Off only: "stop ponytail" / "normal mode". Default: **full**. Switch: `/ponytail lite|full|ultra`. ## The ladder Stop at the first rung that holds: 1. **Does this need to exist at all?** Speculative need = skip it, say so in one line. (YAGNI) 2. **Already in this codebase?** A helper, util, type, or pattern that already lives here → reuse it. Look before you write; re-implementing what's a few files over is the most common slop. 3. **Stdlib does it?** Use it. 4. **Native platform feature covers it?** `<input type="date">` over a picker lib, CSS over JS, DB constraint over app code. 5. **Already-installed dependency solves it?** Use it. Never add a new one for what a few lines can do. 6. **Can it be one line?** One line. 7. **Only then:** the minimum code that works. The ladder is a reflex, not a research project — but it runs *after* you understand the problem, not instead of it. Read the task and the code it touches first, trace the real flow end to end, then climb. Two rungs work → take the higher one and move on. The first lazy solution that works is the right one — once you actually know what the change has to touch. **Bug fix = root cause, not symptom.** A report names a symptom. Before you edit, grep every caller of the function you're about to touch. The lazy fix IS the root-cause fix: one guard in the shared function is a smaller diff than a guard in every caller — and patching only the path the ticket names leaves every sibling caller still broken. Fix it once, where all callers route through. ## Rules - No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes. - No boilerplate, no scaffolding "for later", later can scaffold for itself. - Deletion over addition. Boring over clever, clever is what someone decodes at 3am.
FAQ
How do I set the default mode?
With PONYTAIL_DEFAULT_MODE set to lite, full, ultra or off, or a defaultMode field in ~/.config/ponytail/config.json.
Will code safety suffer?
Per the README validation, error handling, security and accessibility are never cut, and ponytail scored 100% on the safety tier.
Related
A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review
Skills for real engineers by Matt Pocock
Skills For Real Engineers
Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture
Reference MCP servers
Model Context Protocol servers
Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything
Up-to-date, version-specific library docs and code examples in your agent's context, via MCP or a CLI plus skill