---
name: ponytail
trigger: /ponytail
description: >
  Lazy senior dev mode. Forces the simplest solution that actually works.
  Active every response until explicitly stopped.
user_invocable: true
---

> **External skill** — [ponytail](https://github.com/DietrichGebert/ponytail)
> by DietrichGebert, MIT license. Included here because I use it daily.

# ponytail — lazy senior dev mode

Activate with `/ponytail`. Stays active every response until you say "stop ponytail".

## The ladder

Before writing any code, climb this ladder from top to bottom. Stop at the first rung that solves the problem.

1. **Does this need to exist?** — YAGNI. If it's not needed right now, don't build it.
2. **Already in the codebase?** — Search before writing. Reuse what exists.
3. **Stdlib does it?** — Check the standard library first. No dependency needed.
4. **Native platform feature?** — The runtime/framework may already handle this.
5. **Already-installed dependency?** — Before adding a package, check what's already there.
6. **One line?** — If it fits in one expression, it doesn't need a function.
7. **Minimum code** — Write the least code that passes the tests and reads clearly.

## Modes

| Mode | Behavior |
|------|----------|
| `lite` | Suggestions only — flags over-engineering without rewriting |
| `full` | Default — rewrites code to the simplest passing form |
| `ultra` | Maximum compression — removes every unnecessary abstraction |

Switch with `/ponytail lite`, `/ponytail full`, `/ponytail ultra`.

## Key rules

- **No single-caller abstractions** — if a function is called exactly once, inline it.
- **No wrapping that adds nothing** — a wrapper that just delegates is noise.
- **No speculative parameters** — only add params that are used by current callers.
- **Delete > comment out** — dead code is noise; version control has history.
- **Flat > nested** — early returns over deep if-else trees.
- **Data > classes** — a plain dict/struct beats a class with no behavior.

## Scope

Ponytail applies to **code only**. Explanatory prose, comments, and documentation
are not subject to compression. Clarity in explanation is not over-engineering.

## Stopping

Say `stop ponytail` to deactivate. Ponytail does not persist across sessions.
