Skip to content
Gradland
← Blog
🎯

Your AI Agent Needs a Lazy Senior Dev

17 June 2026·4 min readAI AgentsClaude CodeDeveloper Tools

There's a tell you see in every AI agent that hasn't been reined in: you ask for a date picker, it installs flatpickr, writes a wrapper component, adds a stylesheet, and starts a discussion about timezones. The browser ships <input type="date">. Native. Free. Zero dependencies.

Ponytail hit 27,000 GitHub stars in a week by formalising the opposite instinct. It's a Claude Code and Codex plugin that drops a "lazy senior dev" persona into your agent — someone who looks at your fifty lines, says nothing, and replaces them with one.

The Six-Rung Ladder

Before writing any code, ponytail makes the agent walk a decision ladder:

1. Does this need to exist?   → no: skip it (YAGNI)
2. Stdlib does it?            → use it
3. Native platform feature?   → use it
4. Installed dependency?      → use it
5. One line?                  → one line
6. Only then: the minimum that works

The README is explicit about what's off the table: "Lazy, not negligent: trust-boundary validation, data-loss handling, security, and accessibility are never on the chopping block."

This is the important part. The goal isn't to golf code — it's to cut the code that was never necessary. A 20-line function you can audit in 30 seconds versus a 120-line abstraction protecting you from a problem you don't have. The output is small because it's appropriate, not because it's been compressed.

The Benchmarks

Ponytail ran head-to-head numbers across five everyday tasks (email validator, debounce, CSV sum, countdown timer, rate limiter) on Haiku, Sonnet, and Opus — ten runs per cell, medians reported:

  • 80–94% less code vs a no-skill baseline
  • 42–75% cheaper on Claude API costs
  • 3–6× faster to first output

There's a caveat worth understanding: on terse reasoning models like GPT-5.5, the overhead of walking the ladder can cost more than the shorter code saves. The rung system is a deliberation step, and if the model wants to think in tokens before writing, that eats into the gains. On Claude models — Haiku especially — the results are solid. This is a Claude-first tool and the numbers reflect that.

You can reproduce everything: npx promptfoo eval -c benchmarks/promptfooconfig.yaml. Raw results are in the repo under benchmarks/results/.

Installing It

For Claude Code, two commands:

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

That's it. The plugin injects the ruleset every turn. The /ponytail ultra command dials up the strictness; /ponytail-review kicks off a review pass on existing code. Codex and GitHub Copilot CLI follow the same install pattern.

One thing to know: the lifecycle hooks need node on your PATH in the non-interactive shell. If you're using nvm or Nix this can bite you — the rules still apply, the always-on activation just stays quiet instead of erroring on every prompt.

What I'd Build With This

Ponytail baked into a project scaffold. Rather than adding it per-project, a template with ponytail already in CLAUDE.md and the plugin pre-installed. Agents starting constrained is the right default. Unconstrained is opt-in.

Retrospective audit on an existing AI-touched codebase. Run the review mode against any project an unconstrained agent has worked on for a few months. I'd put money on finding wrapper functions that wrap stdlib, date formatting utilities that new Date().toLocaleDateString() handles natively, and custom error classes used in exactly one place.

A Supabase query hygiene extension. The six-rung ladder maps cleanly onto database query patterns: does this query need to exist, does .maybeSingle() replace a .single() + catch, does a .limit(100) stop an unbounded scan? A custom ponytail skill layer targeting query bloat the way the base layer targets code bloat.

My Take

The instinct ponytail formalises isn't new — it's what code review was supposed to do. The gap it fills is that review happens after the code is written, and an agent without constraints defaults to complex because complex looks thorough.

What's striking about the benchmarks is that cost and speed are the byproduct, not the pitch. The pitch is: write only what the task needs. Flip the incentives at the source, and the numbers sort themselves out.

Whether 27k stars in a week translates to long-term adoption depends on whether teams actually wire it into their workflows or treat it as a novelty install. But the ladder itself is sound. Any codebase with an AI agent touching production code should have something equivalent to this.

Add it. Then watch what your agent would have written without it.

🤖

Feed this to Buddy?

Worth 4 XP · 🔮 circuit chip · feeds & evolves your TamaAussie

← All postsThanks for reading 🌿