Less code to maintain
Skip speculative features, wrappers, and abstractions that don’t earn their keep.
Ponytail puts a lazy senior developer inside your AI coding agent: understand the problem, then stop at the smallest solution that actually works.
It is not a library that writes code. It is a behaviour layer that changes what the agent reaches for first.
Skip speculative features, wrappers, and abstractions that don’t earn their keep.
Use the browser, standard library, installed dependencies, or existing project patterns before adding anything new.
Validation, security, error handling, accessibility, and data-loss protection stay in scope.
The point isn’t to chase the lowest line count. The point is to avoid paying for code that adds no value, while keeping the code that protects users.
// install a package import DatePicker from "date-picker-lib"; // wrapper, styles, state, options… <DatePicker minDate={new Date()} locale="en-AU" timezone="Australia/Sydney" />
<!-- ponytail: browser has one --> <input type="date">
Ponytail explicitly keeps the work that protects people, systems, and data.
A bare “YAGNI + one-liners” prompt produced the fewest lines on one safety task, but dropped a path-traversal guard once in four runs. Ponytail kept the guard in all four.
Minimalism is a judgement system, not a command to delete lines.
Select a metric. Bars are Ponytail and control arms relative to the no-skill baseline.
On average across 12 feature tasks, Ponytail left 46% of baseline LOC: a 54% reduction. This is an aggregate, not a promise for every task.
Ponytail keeps the core skills portable, then uses thin adapters or project instruction files for each host.
The portable fallback is simple: put the repo’s AGENTS.md rules in the project so any compatible agent can read them.
codex plugin marketplace add DietrichGebert/ponytail codex plugin add ponytail@ponytail
Then open /hooks, review and trust the two lifecycle hooks, and start a new thread.
Use a native adapter, or copy AGENTS.md into the project root.
Start with full. Use lite for a gentler adoption.
Describe the outcome. Let the agent read the touched code and trace the flow first.
Ask @ponytail-review or /ponytail-review what can be cut.
Run the audit and track deliberate simplifications with their upgrade trigger.
If you don’t need the plugin, this is the portable kernel. Save it as AGENTS.md, then let your agent apply it on every task.
Before writing code: 1. Does this need to exist? 2. Can we reuse what’s already here? 3. Does the standard library or platform do it? 4. Is the dependency already installed? 5. What is the minimum correct implementation? Read first. Keep validation, security, error handling, accessibility, and data-loss protection.
Name the lazier alternative, but don’t push the full ladder into every decision.
YAGNI → reuse → stdlib → native → installed dependency → one line → minimum.
Challenge speculative requirements and ship the smallest thing that survives scrutiny.
@ponytail-reviewReview the current diff for over-engineering.
@ponytail-auditAudit the whole repo, ranked by biggest cut.
@ponytail-debtHarvest deliberate shortcuts into a debt ledger.
Ponytail’s real contribution is a repeatable judgement loop: understand the problem, use what already exists, and stop before the code becomes somebody else’s maintenance burden.
Lazy means efficient, not careless.
MIT licensed · open source · agent-portable