PluginBench
Skill
Pass
Audit score 90

ponytail-audit

dietrichgebert/ponytail

Whole-repo audit for over-engineering: ranked list of what to delete, simplify, or replace.

What is ponytail-audit?

Scans your entire codebase to identify over-engineering, dead code, unused dependencies, and unnecessary abstractions. Use when you want a one-shot report of what can be cut, simplified, or replaced with standard library or native equivalents—without applying fixes.

  • Identifies dead code, unused features, and speculative additions marked for deletion
  • Finds hand-rolled implementations that stdlib or platform already provides
  • Detects single-implementation interfaces, one-product factories, and delegating wrappers
  • Spots unused config flags and files exporting only one thing
  • Ranks findings by impact (biggest cuts first) with line and dependency savings estimates

How to install ponytail-audit

npx skills add https://github.com/dietrichgebert/ponytail --skill ponytail-audit
Claude Code
Cursor
Windsurf
Cline

How to use ponytail-audit

  1. 1.Run the skill by asking the agent to audit the codebase (e.g., 'audit this codebase', 'audit for over-engineering', 'find bloat')
  2. 2.Review the ranked findings report, which lists each issue with its tag, description, replacement suggestion, and file path
  3. 3.Check the summary line showing estimated lines and dependencies that could be removed
  4. 4.Use the findings to prioritize what to delete, simplify, or refactor
  5. 5.Exit with 'stop ponytail-audit' or 'normal mode' when done

Use cases

Good for
  • Audit a codebase for bloat before a major refactor or cleanup sprint
  • Find unused dependencies and dead code across a large repo
  • Identify over-abstracted layers and unnecessary wrapper functions
  • Discover hand-rolled utilities that duplicate stdlib functionality
  • Get a prioritized list of simplification opportunities across the entire project
Who it's for
  • Backend and full-stack engineers managing legacy or growing codebases
  • Tech leads evaluating codebase health and complexity
  • Developers preparing for a cleanup or modernization effort
  • Teams auditing dependencies and technical debt

ponytail-audit FAQ

Does ponytail-audit apply fixes automatically?

No. It is a one-shot report only. It lists findings but does not modify code.

What is the difference between ponytail-audit and ponytail-review?

ponytail-review scans a diff (changes in a PR or commit). ponytail-audit scans the entire repository.

What kinds of issues does ponytail-audit find?

Over-engineering and complexity: dead code, unused abstractions, single-implementation interfaces, hand-rolled stdlib, unnecessary wrappers, and unused config. It does not check for correctness bugs, security holes, or performance issues.

How are findings ranked?

Findings are ranked by impact, with the biggest cuts (most lines or dependencies saved) listed first.

What do the tags mean?

delete: remove entirely. stdlib: use standard library instead. native: use platform feature instead. yagni: abstraction with only one use. shrink: same logic in fewer lines.

Full instructions (SKILL.md)

Source of truth, from dietrichgebert/ponytail.


name: ponytail-audit description: > Whole-repo audit for over-engineering. Like ponytail-review, but scans the entire codebase instead of a diff: a ranked list of what to delete, simplify, or replace with stdlib/native equivalents. Use when the user says "audit this codebase", "audit for over-engineering", "what can I delete from this repo", "find bloat", "ponytail-audit", or "/ponytail-audit". One-shot report, does not apply fixes.

ponytail-review, repo-wide. Scan the whole tree instead of a diff. Rank findings biggest cut first.

Tags

Same as ponytail-review:

  • delete: dead code, unused flexibility, speculative feature. Replacement: nothing.
  • stdlib: hand-rolled thing the standard library ships. Name the function.
  • native: dependency or code doing what the platform already does. Name the feature.
  • yagni: abstraction with one implementation, config nobody sets, layer with one caller.
  • shrink: same logic, fewer lines. Show the shorter form.

Hunt

Deps the stdlib or platform already ships, single-implementation interfaces, factories with one product, wrappers that only delegate, files exporting one thing, dead flags and config, hand-rolled stdlib.

Output

One line per finding, ranked: <tag> <what to cut>. <replacement>. [path]. End with net: -<N> lines, -<M> deps possible. Nothing to cut: Lean already. Ship.

Boundaries

Scope: over-engineering and complexity only. Correctness bugs, security holes, and performance are explicitly out of scope. Route them to a normal review pass. Lists findings, applies nothing. One-shot. "stop ponytail-audit" or "normal mode" to revert.