Ponytail — плагин
Плагин и скилл, который заставляет агента писать минимум кода: сначала повторное использование, stdlib и нативные возможности
- 179 572 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Плагины устанавливают Node.js-хуки жизненного цикла
- Может добавить statusLine в ~/.claude/settings.json
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add plugins/ponytailОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Плагины устанавливают Node.js-хуки жизненного цикла
- Может добавить statusLine в ~/.claude/settings.json
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Перед написанием кода агент проходит лестницу вопросов: нужно ли это вообще, есть ли решение в кодовой базе, в стандартной библиотеке, в платформе или в установленной зависимости, хватит ли одной строки. Только после этого пишется минимальная реализация. Валидация на границах доверия, обработка потери данных, безопасность и доступность не урезаются. Режимы lite, full и ultra переключаются командой /ponytail, есть скиллы для ревью, аудита и оценки техдолга.
Для кого. Разработчики, которых раздражает, что агент тянет лишние зависимости и пишет обертки там, где хватит нативного элемента.
Подходит, если
- Агент регулярно переусложняет решения и добавляет библиотеки
- Хотите сократить объем диффов и стоимость сессий
- Нужно ревью кода на избыточность
Не подходит, если
- Задача не связана с кодом: скилл рассчитан только на программирование
- Используете рассуждающую модель, которая тратит токены на обдумывание правил: на GPT-5.5 расходы выросли
Пример запроса к агенту
Добавь выбор даты в форму бронирования, /ponytail fullОграничения
Хуки плагинов для Claude Code, Codex и Cursor требуют node в PATH. Заявленные цифры получены на Haiku 4.5 на 12 задачах: в среднем на 54% меньше кода, эффект близок к нулю, где код уже минимален. В Cursor subagent работают без правил.
Как отключить. Выключите режим командой /ponytail off. Для удаления сначала запустите node scripts/uninstall.js, затем /plugin remove ponytail в Claude Code или codex plugin remove ponytail.
Частые вопросы
Как задать режим по умолчанию?
Переменной PONYTAIL_DEFAULT_MODE со значением lite, full, ultra или off, либо полем defaultMode в ~/.config/ponytail/config.json.
Не пострадает ли безопасность кода?
По README валидация, обработка ошибок, безопасность и доступность никогда не сокращаются, в тестах на безопасность ponytail набрал 100%.
Чем Ponytail отличается от других плагинов для кода?
Ponytail меняет порядок мышления агента, команд и агентов не добавляет: перед кодом агент проверяет, нужно ли это вообще, есть ли решение в кодовой базе, стандартной библиотеке или зависимости. Пишется только минимум.
Как установить Ponytail в OpenCode и другие агенты?
Для Claude Code команды /plugin marketplace add DietrichGebert/ponytail и /plugin install ponytail@ponytail. Плагин работает также с Codex, Copilot, OpenCode, Gemini CLI, Cursor, Windsurf, Cline и Amp, шаги для каждого агента в блоке установки.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
ПлагиныПлагин со скиллами для Claude Code и Codex: исследование кода, тесты, рефакторинг и независимая проверка готовых изменений
Набор скиллов, который задает агенту процесс разработки: уточнение задачи, план, TDD, субагенты и ревью кода
Маркетплейс и установщик плагинов для полного цикла разработки: выбор задачи, ревью, чистка кода, PR, релиз
MiniCode — компактный терминальный кодинг-агент на TypeScript в духе Claude Code: цикл с инструментами, интерфейс TUI, навыки, MCP и подагенты
Набор из девяти скиллов-проверок для агентов: мертвый код, галлюцинации, безопасность зависимостей, устойчивость и дрейф контрактов
Зеркало набора pstack Лорен Тан из Cursor: больше 50 скиллов, режим poteto-mode с 23 сценариями работы и 24 принципа для строгой работы агента с кодом
Из блога
Коротко о README
README описывает идею ленивого старшего разработчика и приводит бенчмарк на реальном репозитории FastAPI и React с поправкой на ранее завышенные цифры. Установка расписана для Claude Code, Codex, Copilot CLI, OpenCode, Gemini CLI, Antigravity, Hermes, Devin, Cursor и других, для остальных агентов есть файлы правил. Отдельно описаны настройки, внедрение в subagent и полное удаление. Лицензия MIT.
Бейдж для README
Исходный SKILL.md
--- name: ponytail description: > Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has seen everything: question whether the task needs to exist at all (YAGNI), reach for the standard library before custom code, native platform features before dependencies, one line before fifty. Supports intensity levels: lite, full (default), ultra. Use on ANY coding task: writing, adding, refactoring, fixing, reviewing, or designing code, and choosing libraries or dependencies. Also use whenever the user says "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal solution", "yagni", "do less", or "shortest path", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Do NOT use for non-coding requests (general knowledge, prose, translation, summaries, recipes). argument-hint: "[lite|full|ultra]" license: MIT --- # Ponytail You are a lazy senior developer. Lazy means efficient, not careless. You have seen every over-engineered codebase and been paged at 3am for one. The best code is the code never written. ## Persistence ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure. Off only: "stop ponytail" / "normal mode". Default: **full**. Switch: `/ponytail lite|full|ultra`. ## The ladder Stop at the first rung that holds: 1. **Does this need to exist at all?** Speculative need = skip it, say so in one line. (YAGNI) 2. **Already in this codebase?** A helper, util, type, or pattern that already lives here → reuse it. Look before you write; re-implementing what's a few files over is the most common slop. 3. **Stdlib does it?** Use it. 4. **Native platform feature covers it?** `<input type="date">` over a picker lib, CSS over JS, DB constraint over app code. 5. **Already-installed dependency solves it?** Use it. Never add a new one for what a few lines can do. 6. **Can it be one line?** One line. 7. **Only then:** the minimum code that works. The ladder is a reflex, not a research project — but it runs *after* you understand the problem, not instead of it. Read the task and the code it touches first, trace the real flow end to end, then climb. Two rungs work → take the higher one and move on. The first lazy solution that works is the right one — once you actually know what the change has to touch. **Bug fix = root cause, not symptom.** A report names a symptom. Before you edit, grep every caller of the function you're about to touch. The lazy fix IS the root-cause fix: one guard in the shared function is a smaller diff than a guard in every caller — and patching only the path the ticket names leaves every sibling caller still broken. Fix it once, where all callers route through. ## Rules - No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes. - No boilerplate, no scaffolding "for later", later can scaffold for itself. - Deletion over addition. Boring over clever, clever is what someone decodes at 3am.