AI News · Tools

Ponytail or /simplify:
prevent or clean up.

DE Auf Deutsch lesen

September 13, 2026 · approx. 11 min read

Both tools advertise leaner code. But they intervene at different points in the workflow. Ponytail is a skill that asks, right while the code is being written, whether it's even needed at all. /simplify is a Claude Code command that comes afterward and cleans up the finished diff. I built the same task for PlantWiz three times to see what that actually means in practice.

A few chosen wooden building blocks stand opposite a large construction that is being reworked afterward.

The mix-up is understandable, because both tools use the same word: "simplify." Ponytail is a short checklist an agent runs through before writing: does this already exist? Does a standard function cover it? Is it even needed? /simplify, on the other hand, is a review command that looks at the resulting diff after writing and searches for reuse, redundancy, and unnecessary complexity. One question comes before building, one after, and despite sharing the same goal, they lead to very different results.

Transparency note: All measurements come from one project: PlantWiz, a production Vue 3 application with a Node backend. I created three isolated Git worktrees from the same commit and had the same task implemented independently in each: once without any extra tool, once with the Ponytail skill installed, and once without a tool and then reworked afterward with /simplify. These numbers are a case study, not a general benchmark.

That number alone is misleading. In my measurement, /simplify did solid work, just at a different point than Ponytail, as the next section shows.

The test task

A ticket, as terse as everyday tickets usually are: "Sorting for the plant list: users should be able to sort the plants in their garden by name, planting date, or location." Deliberately an open task with no technical spec, so both tools would have something to do. PlantWiz had no code for this yet, but there was already an existing sorting pattern in the same file (Sidebar.vue, which lists a garden's plants grouped by bed) and an existing test for it.

VariantFilesLinesCharacters (new code)
No tool (baseline)41736,072
With Ponytail3421,501
Baseline, then /simplify41705,980

Ponytail: the question comes before the code

Recommendation

The "lazy senior developer" as a skill

Ponytail on GitHub · a skill for Claude Code, Codex, Cursor, Gemini CLI, and others

Ponytail was tested in detail in the previous post. In short: a skill file with a checklist an agent runs through before writing: does the function already exist, does a standard function cover it, is it even needed at all. The checklist intervenes in the design before a single line of code exists.

On the sorting task, Ponytail landed on rung 4 ("a native platform feature is enough") combined with rung 2 ("does this already exist in the repository"): a native <select> instead of a dropdown library, and the comparator for sorting was aligned with the file's existing Array.sort pattern instead of being reinvented. Result: 42 lines instead of 173, no new store, no new component, no new dependency.

The baseline variant without the checklist, by contrast, had additionally built a complete second, parallel view: a flat list across all of the garden's plants for the new sort modes, with its own markup, its own CSS classes, and its own test. Functionally correct, just more than the ticket called for, and this exact build is what the Ponytail checklist prevented, by keeping the existing grouped layout and only changing the sort order within the groups.

The test that was skipped for the parallel view is not a benefit in itself. The sort feature has three new, externally visible cases; they still need tests. In this case I would extend the existing test to cover name, planting date, and location, rather than cutting test effort across the board.

But this also shows the downside: The Ponytail skill itself weighs in at roughly 6,760 characters, or just under 1,700 tokens, loaded on every call. The gross saving on this task is roughly 1,140 tokens (6,072 → 1,501 characters, roughly divided by four). Net, that's a loss: the checklist cost more than it saved. Unlike the CSV export in the previous post, where the baseline variant had 18,000 characters and much more room to trim, the baseline here was already comparatively disciplined. Further confirmation of the earlier finding: the closer the naive solution already sits to the bare minimum, the more the checklist becomes a pure surcharge.

/simplify: the question comes after the code

Useful, but no substitute

Review command for the existing diff

Built-in Claude Code skill · /simplify

/simplify takes the changed code as it sits in the working directory and checks it along four axes: reuse, simplification, efficiency, and "altitude" (whether the chosen structure fits the task). Unlike Ponytail, /simplify is not automatically loaded on every coding task, but invoked deliberately, usually against a finished diff or pull request.

Important for understanding it: /simplify does not look for bugs, that's what /code-review is for. It's exclusively about quality within what has already been built.

Measured again: same diff, one pass afterward

To compare the two tools fairly, I did not take two independent implementations, but the same starting diff: the 173-line baseline variant without Ponytail, applied in a second worktree and worked on there with /simplify.

/simplify found four real issues:

ResultBefore /simplifyAfter /simplifyDifference
Lines of code173170−1.7%
Characters (new code)6,0725,980−1.5%
Files affected41 (Sidebar.vue only)

Three fixes were applied, and the line count barely dropped. That's how /simplify works: it makes existing code better solved, without asking whether that code should have been built at all. It noticeably does not ask that exact question at the skipped altitude finding. A review command that unilaterally cut feature scope would be the bigger risk on a real pull request, so the restraint there makes sense.

A false positive, as a caution: One of the four parallel review passes initially claimed a function duplicated code from an existing composable. On checking with grep, that function didn't exist there at all. The false positive was discarded before any fix was applied, but it shows: even a review agent occasionally claims things that a quick look at the repository disproves. Check results before accepting them, don't apply them blindly.

The cost: a real review pass instead of a text snippet

Ponytail's cost is predictable: a fixed number of tokens on every call. /simplify costs differently: it triggers a full, multi-part review of the diff, in my run across four separate categories. That's not a fixed text block in context, but its own work step with its own token usage, roughly on the order of a full additional pass over the same task. In return, that cost only occurs when deliberately triggered, not automatically on every coding task.

Direct comparison

Ponytail/simplify
Intervenes whenBefore writingAfter writing, on the diff
Asks the questionDo I even need this?Is what I built clean?
Changes feature scopeYes, activelyNo, deliberately not
Cost modelFixed surcharge per callFull review pass
TriggeredAutomatically on coding tasksDeliberately via command
RiskSurcharge with no benefit on precise ticketsFinds structural issues but doesn't fix them
In this measurement−75.7% lines, net negative−1.7% lines, three real fixes

Which tool, when

1

New feature, openly worded ticket

Try Ponytail first. The effect is largest when the naive solution would otherwise build more than requested.

2

Precisely scoped ticket

Consider leaving Ponytail out, or deliberately test whether it helps here. The checklist can be pure overhead on exact requirements, as the measurement above shows.

3

Before a merge, or on code that was written without Ponytail

Apply /simplify to the finished diff. It finds redundancy and inefficiency regardless of how the code came to be.

The two tools don't compete, they answer different questions. Ponytail saves the most where an agent would otherwise build too much. /simplify improves what has already been built, but doesn't change whether it should have been built. A team using both gets less unnecessary code and cleaner necessary code, but neither tool replaces the question that should stand at the start of a ticket: what is actually needed here.

Honest summary: One run per variant, carried out and judged by me alone, not a blind test. The three worktrees came from the same commit, so the starting point was identical. I consider the direction of the results reliable, especially the negative net effect of Ponytail on this specific task.

Which skills for your team?

I set up Claude Code in development teams, including hooks, skills, and the question of which tasks should even go to an agent in the first place. 30-minute intro call, free of charge.