by DietrichGebert (community) Claude Code, Cursor, любой агент с поддержкой кастомных инструкций
Инструкционный файл, который прививает AI-агенту стиль «ленивого сеньора»: не тащить лишние зависимости и абстракции, а сначала искать самое короткое встроенное решение. На реальных агентных сессиях (правки в открытом FastAPI+React репозитории) даёт заметное сокращение объёма кода, токенов, стоимости и времени выполнения задач при сохранении безопасности правок.
Инструкционный файл для AI-агентов, который заставляет модель писать код и объяснения предельно упрощённым «телеграфным» языком — …
Priompt (priority + prompt) — библиотека для управления контекстным окном через приоритеты. Разработана командой Cursor: позволяет …
SKILL.md-инструкция для AI-агентов: автоматическое закрытие GitHub issues. 6-фазный воркфлоу: фильтрация issues → проверка веток → параллельный …
SKILL.md-инструкция для AI-агентов: управление GitHub через CLI — создание PR и issue, работа с ветками, запуск …
# Claude Code (CLI): npx skills add DietrichGebert/ponytail -g # Ручная установка (любой агент): git clone https://github.com/DietrichGebert/ponytail.git # скопировать SKILL.md в директорию инструкций вашего агента
Он ничего не говорит. Он пишет одну строку. Это работает.
~54% меньше кода (до 94%) · ~20% дешевле · ~27% быстрее · 100% безопасно
Измерено на реальных сессиях Claude Code без интерфейса при редактировании реального открытого репозитория (FastAPI + React) против того же агента без навыка. ~54% — это среднее по 12 задачам функциональности (Haiku 4.5, n=4); оно достигает 94% в случаях, когда агент перестраивает (например, календарь), и приближается к нулю, если код уже минимален. Ponytail сохраняет все меры безопасности, в то время как простой "напиши однострочники"-промпт теряет одну. (Ранее опубликованный бенчмарк в одном запросе показывал 80-94% как фиксированную цифру; по сравнению с честной агентной базовой линией это верхний предел на задачу, а не среднее.) Полное описание · воспроизвести его.
Вы знаете его. Длинный хвост. Овальные очки. Работает в компании дольше, чем система контроля версий. Вы показываете ему пятьдесят строк; он смотрит на них, ничего не говорит и заменяет их одной строкой.
Ponytail помещает его в вашего ИИ-агента.
Вы просите создать календарь. Ваш агент устанавливает flatpickr, пишет обёртку компонента, добавляет таблицу стилей и начинает обсуждение временных зон.
С ponytail:
<!-- ponytail: browser has one -->
<input type="date">
Больше примеров в examples/.
Честная оценка — это реальный агент, выполняющий реальную работу: сессия без интерфейса Claude Code, редактирующая tiangolo's full-stack-fastapi-template (реальный репозиторий FastAPI + React), оценённая по git diff, который остаётся после изменений. Двенадцать задач по функционалу, один и тот же агент с и без навыка, n=4, Haiku 4.5.
| По сравнению с базой без навыка | LOC | токены | стоимость | время | безопасность |
|---|---|---|---|---|---|
| ponytail | -54% | -22% | -20% | -27% | 100% |
| caveman (контроль с лаконичным текстом) | -20% | +7% | +3% | +2% | 100% |
| "YAGNI + однострочники" промпт | -33% | -14% | -21% | -30% | 95% |
Ponytail — единственный метод, который улучшает все метрики, и единственный, который остаётся полностью безопасным при этом. Максимальный эффект наблюдается там, где есть реальная ловушка перестроек (календарь с 404 до 23 строк, цветовой пикер с 287 до 23 строк, так как он использует родной <input> вместо компонента), и почти нулевой на уже минимальном коде. Полный метод, таблицы по задачам и ограничения: benchmarks/results/2026-06-18-agentic.md.
Старые цифры для одиночных запросов (изолированная генерация)
Пять повседневных задач, три модели, три подхода (без навыка, caveman, ponytail), десять запусков, медиана результатов. Один промпт, одно завершение, подсчёт строк ответа:
Это показало 80-94% меньше кода. #126 справедливо указал, что базовая линия без навыка дополняет ответы текстовыми вставками и вариантами, поэтому разрыв частично является артефактом разговорной базовой линии. Агентные цифры выше — это исправленная, защищённая версия. Воспроизведите одиночный запуск с помощью npx promptfoo eval -c benchmarks/promptfooconfig.yaml.
Правило никогда не было «минимальное количество токенов». Оно таково: пишите только то, что необходимо для задачи, и никогда не урезайте валидацию, обработку ошибок, безопасность или доступность. Код получается компактным потому, что он необходим, а не потому, что его «сголили». Низкая стоимость и задержки — побочный эффект для моделей, которые следуют этому принципу; лаконичная модель рассуждений, тратящая токены на обдумывание шагов, может пойти не в ту сторону (на GPT-5.5 так и происходит).
Прежде чем писать код, агент останавливается на первой ступеньке лестницы, которая выдерживает:
1. Does this need to exist? → no: skip it (YAGNI)
2. Already in this codebase? → reuse it, don't rewrite
3. Stdlib does it? → use it
4. Native platform feature? → use it
5. Installed dependency? → use it
6. One line? → one line
7. Only then: the minimum that works
Лестница запускается после понимания проблемы, а не вместо него: она читает код, который затрагивает изменения, и прослеживает реальный поток данных перед выбором ступеньки. Ленивый в решении, но никогда в чтении.
Ленивый, но не халатный: проверка границ доверия, обработка потери данных, безопасность и доступность никогда не подлежат сокращению.
Самая большая просьба, которую когда-либо предъявляет ponytail:
Плагины Claude Code и Codex (а также хуки Cursor) запускают два небольших хука жизненного цикла на Node.js, поэтому node должен быть в переменной окружения PATH (примечание для пользователей Nix/nvm: он должен быть в PATH неинтерактивной оболочки). Если его там нет, навыки всё равно работают, просто постоянная активация молчит вместо того, чтобы выдавать ошибку на каждом запросе.
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
(Для работы установки нужно отправить два отдельных запроса)
Те же шаги в вкладке Code десктопного приложения Claude Code: введите две команды /plugin выше в поле запроса или нажмите кнопку + рядом с ним, выберите Plugins → Add plugin, чтобы просмотреть настроенные маркетплейсы, и управляйте маркетплейсами через Customize в боковой панели.
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
Запустите codex и откройте /hooks, просмотрите и доверьте два хука жизненного цикла, затем начните новый поток.
Эта же установка покрывает десктопное приложение Codex: перезапустите приложение после установки, и оно подхватит плагин.
copilot plugin marketplace add DietrichGebert/ponytail
copilot plugin install ponytail@ponytail
В интерактивной сессии Copilot CLI используйте эквиваленты с косой чертой:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
Copilot CLI именует команды плагинов по имени плагина. Например:
/ponytail:ponytail ultra
/ponytail:ponytail-review
pi install git:github.com/DietrichGebert/ponytail
Добавьте в opencode.json:
{ "plugin": ["@dietrichgebert/ponytail"] }
Запускайте из клона репозитория (плагин повторно использует hooks/ и skills/):
{ "plugin": ["./.opencode/plugins/ponytail.mjs"] }
Инъектирует набор правил на каждом шаге на активном уровне; добавляет команды /ponytail (см. Commands). OpenCode также автоматически загружает AGENTS.md из этого репозитория, поэтому правила действуют даже без плагина. Плагин добавляет уровни lite/full/ultra/off.
Путь ./ разрешается относительно opencode.json вашего проекта; чтобы использовать один клон для нескольких проектов, укажите абсолютный путь к файлу .mjs (он найдёт свои hooks/ и skills/ относительно собственного файла).
gemini extensions install https://github.com/DietrichGebert/ponytail
Загружает набор правил как постоянный контекст в каждой сессии и регистрирует команды /ponytail; также отправляются папки skills/, активируемые при необходимости для задачи.
Адаптер для Gemini намеренно не поставляется с корневым hooks/hooks.json: Gemini автоматически загружает этот путь, в то время как хуки жизненного цикла Ponytail используют имена событий от Claude/Codex.
Qoder автоматически загружает AGENTS.md из корня репозитория как постоянный контекст, поэтому запуск ponytail из клона работает без настройки. Для правил на уровне проекта скопируйте файл .qoder/rules/ponytail.md в папку .qoder/rules/ вашего проекта. Шесть навыков ponytail (/ponytail, /ponytail-review, /ponytail-audit, /ponytail-debt, /ponytail-gain, /ponytail-help) доступны через систему навыков Qoder; манифест плагина в .qoder-plugin/plugin.json указывает на директорию skills/.
Для полной поддержки плагинов (автоматическая активация режима + инъекция набора правил на каждом запросе) добавьте хуки из hooks/qoder-hooks.json в ваш .qoder/settings.json. Замените PONYTAIL_DIR на путь к клону ponytail. Хук UserPromptSubmit от Qoder активирует режим по умолчанию при первом запросе и инъектирует набор правил на каждом шаге; хук PreToolUse с сопоставлением task|Task инъектирует набор правил в подагентов. Переключение уровней (/ponytail lite|full|ultra|off) работает автоматически.
Google переименовывает Gemini CLI в Antigravity CLI (бинарный файл agy); тот же расширение устанавливается туда:
agy plugin install https://github.com/DietrichGebert/ponytail
Оно повторно использует gemini-extension.json из этого репозитория. Разница в том, что Antigravity преобразует команды /ponytail в навыки, поэтому вы вводите их в чат (например, /ponytail-review как сообщение) вместо выбора из меню слэш-команд. До завершения миграции (примерно к 18 июня 2026 года) команда gemini extensions install всё ещё работает. Чтобы запустить его как правило, всегда активное, поместите набор правил в .agents/rules/.
hermes plugins install DietrichGebert/ponytail --enable
Перезапустите Hermes после установки. Плагин вставляет активный режим Ponytail перед каждым витком LLM, регистрирует встроенные навыки как ponytail:<skill> и добавляет команды /ponytail, /ponytail-review, /ponytail-audit, /ponytail-debt, /ponytail-gain и /ponytail-help. В общих шлюзах ограничивайте доступ к /ponytail доверенным пользователям с помощью средств управления доступом к слэш-командам Hermes; режим выполнения локален для процесса.
Считывает файл AGENTS.md из корня проекта, без настройки. Скопируйте AGENTS.md в свой проект или запустите codewhale из клона этого репозитория. Это всё.
Сначала добавьте коллекцию в вашу библиотеку, затем выберите нужные навыки:
swival skills add --global https://github.com/DietrichGebert/ponytail # stage into ~/.config/swival/library
swival skills add ponytail # install the collection into this project
swival skills add --global ponytail # or activate it in every project
Swival также считывает AGENTS.md из корня проекта и глобальный файл ~/.config/swival/AGENTS.md в качестве резервного варианта с инструкциями.
В командной строке используйте префикс $, чтобы явно активировать навык. Например: $ponytail-review.
devin plugins install DietrichGebert/ponytail
Устанавливает ponytail как плагин Devin; навыки доступны как /ponytail:ponytail, /ponytail:ponytail-review и так далее.
clawhub install ponytail
Устанавливает ponytail как навык OpenClaw из ClawHub; навыки review, audit, debt, gain и help устанавливаются аналогично (clawhub install ponytail-review и так далее). OpenClaw применяет его к задачам программирования и также предоставляет доступ через команду /ponytail. Без ClawHub скопируйте .openclaw/skills/ponytail в ~/.openclaw/skills/.
grok plugin install DietrichGebert/ponytail --trust
Включите плагин (по умолчанию отключён): /plugins → Плагины → Пробел на ponytail, или в файле ~/.grok/config.toml:
[plugins]
enabled = ["ponytail"]
Начните новую сессию (или перезагрузите плагины). Навыки отображаются как /ponytail, /ponytail-review, /ponytail-audit, /ponytail-debt, /ponytail-gain, /ponytail-help. Проверьте с помощью команды grok inspect. Grok может автоматически вызывать ponytail для задач программирования по описанию навыка; используйте /ponytail (или /ponytail lite, /ponytail full, /ponytail ultra), когда активация должна быть явной. Крючки жизненного цикла Grok не используются, так как их вывод SessionStart не может вставлять инструкции.
Файл AGENTS.md всё ещё работает в режиме только с инструкциями из клона без плагина.
git clone https://github.com/DietrichGebert/ponytail
node ponytail/scripts/cursor-hooks.js install
Объединяет два родных хука в ~/.cursor/hooks.json (добавьте --project, чтобы записать <project>/.cursor/hooks.json вместо этого) и сохраняет любые хуки, которые уже есть там. Эти записи запускают node из этого клона, поэтому оставьте его на месте или перезапустите установку после перемещения. Cursor перезагружает файл при сохранении; откройте новый чат, и набор правил для вашего уровня по умолчанию поступит через sessionStart. Отправьте /ponytail lite, /ponytail full, /ponytail ultra или /ponytail off как обычное сообщение, чтобы изменить уровень на остаток разговора; /ponytail отобразит текущий уровень. Cursor не может вставлять контекст через subagentStart, поэтому подагенты работают без набора правил, а облачные агенты никогда не вызывают sessionStart. Правило, всегда активное (.cursor/rules/ponytail.mdc), и хуки — альтернативы: пока правило находится в рабочей области, хуки ничего не вставляют, а команды режима отвечают уведомлением, поэтому удалите правило, чтобы хуки управляли уровнем. Договорённости, записи проверки и ограничения: docs/cursor-hooks.md. Удаление: node ponytail/scripts/cursor-hooks.js uninstall.
Всё. Он был бы горд. Он этого не скажет.
Активен в каждой сессии с несколькими командами (см. Commands). /ponytail ultra существует для случаев, когда кодовая база лично обидела вас. Текст запуска и смены режима показывает текущий режим.
Установите уровень для каждой новой сессии с помощью переменной окружения PONYTAIL_DEFAULT_MODE (lite/full/ultra/off) или поля defaultMode в файле ~/.config/ponytail/config.json (%APPDATA%\ponytail\config.json на Windows). По умолчанию установлен full.
Во время активности набор правил также внедряется во всех дочерних агентах, создаваемых через инструмент Agent. Чтобы ограничить это для конкретных типов агентов (например, отключить для агентов поиска с правами только на чтение), установите переменную окружения PONYTAIL_SUBAGENT_MATCHER в регулярное выражение, которое будет проверяться против agent_type дочернего агента. Оно не привязано к границам (unanchored) и нечувствительно к регистру: explore|general подойдёт для любого из них, ^general$ — точное совпадение, а типы плагинов выглядят как plugin:name. Если переменная не задана, правила внедряются во все дочерние агенты (по умолчанию); неверное регулярное выражение или тип дочернего агента, который платформа не сообщает, также приведёт к внедрению по умолчанию.
Cursor (альтернатива на основе правил для установки хуков), Windsurf, Cline, GitHub Copilot Chat (расширение для редакторов VS Code, JetBrains и Visual Studio, а не standalone Copilot CLI, покрытый в разделе Установка), Aider, Kiro, Zed, CodeWhale, Swival, Qoder: скопируйте соответствующий файл правил из этого репозитория (.cursor/rules/, .windsurf/rules/, .clinerules/, .github/copilot-instructions.md, AGENTS.md, .kiro/steering/, .qoder/rules/).
Kiro: скопируйте .kiro/steering/ponytail.md в ~/.kiro/steering/ (глобально) или .kiro/steering/ в вашем проекте.
GitHub Copilot CLI (режим только с инструкциями): он читает файлы AGENTS.md и .github/copilot-instructions.md в проекте, или скопируйте правила в ~/.copilot/copilot-instructions.md, чтобы запускать ponytail во всех проектах. Этот путь поддерживает постоянное руководство, но не добавляет переключатели режима плагинов или хуков.
VS Code с расширением Codex читает AGENTS.md, который поставляется с этим репозиторием, поэтому он работает из корня репозитория без настройки (~/.codex/AGENTS.md делает Codex глобальным).
JetBrains Junie может читать AGENTS.md после того, как вы укажете путь в Настройках → Инструменты → Junie → Настройки проекта → Путь к руководству (автоматически это не работает). Этот репозиторий поставляется с AGENTS.md; .junie/guidelines.md — это устаревший путь для Junie.
Amp (Sourcegraph) читает AGENTS.md из рабочей директории и родительских директорий до $HOME, который поставляется с этим репозиторием, поэтому он работает без настройки (~/.config/amp/AGENTS.md работает глобально).
Jules (Google) читает AGENTS.md из корня репозитория, который поставляется с этим репозиторием, поэтому он подхватывает набор правил без настройки.
Какие файлы соответствуют каким агентам: Переносимость агентов.
| Хост | Команда |
|---|---|
| Claude Code | /plugin remove ponytail |
| Codex | codex plugin remove ponytail |
| Devin CLI | devin plugins remove ponytail |
| Grok Build | grok plugin uninstall ponytail |
| Pi agent | pi uninstall ponytail |
| Cursor hooks | node scripts/cursor-hooks.js uninstall (добавьте --project для установки на уровне проекта); удаляет только записи ponytail из hooks.json |
| Cursor rule / Windsurf / Cline / Qoder / и др. | Удалите скопированный файл правил |
Эти команды удаляют файлы плагина. Они оставляют небольшое количество состояния, которое ponytail записывает вне папки плагина: флаг режима (~/.claude/.ponytail-active или ~/.cursor/.ponytail-active для Cursor), ~/.config/ponytail/config.json, записи ponytail в ~/.cursor/hooks.json и (если вы согласились на подсказку установки) запись statusLine в ~/.claude/settings.json. Запустите node scripts/uninstall.js, чтобы также удалить их. Запустите его до команды удаления хоста выше — скрипт сам является файлом плагина, поэтому удаление плагина сначала удалит его (или запустите его из отдельной копии этого репозитория). Он удаляет запись statusLine только если она указывает на собственный скрипт ponytail, поэтому пользовательская строка состояния останется нетронутой.
| Команда | Что делает |
|---|---|
/ponytail [lite \| full \| ultra \| off] |
Устанавливает интенсивность или отключает её. Без аргументов отображает текущий уровень. |
/ponytail-review |
Проверяет текущую разницу (diff) на переусложнение и возвращает список для удаления. |
/ponytail-audit |
Проверяет весь репозиторий на переусложнение, а не только разницу (diff). |
/ponytail-debt |
Собирает отложенные сокращения ponytail: в сводную ведомость, чтобы "позже" не стало "никогда". |
/ponytail-gain |
Показывает измеренную доску результативности (меньше кода, меньше затрат, больше скорости) из бенчмарка. |
/ponytail-help |
Быстрая справочная информация по командам выше. |
Команды требуют хозяина с навыками (Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Swival, Hermes Agent, Qoder, Grok Build). В Codex они называются навыками, вызываются с помощью @ (@ponytail-review). Курсор с крючками поддерживает только переключение уровней /ponytail, вводимое как обычное сообщение. Адаптеры с инструкциями только (файл правил Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) загружают набор правил, всегда активных, без команд. |
При изменении компактного текста правил сохраняйте копии агента выровненными:
node scripts/check-rule-copies.js
npm test
Пакет навыков OpenClaw (.openclaw/skills/) генерируется из папки skills/; после изменения навыка перезапустите node scripts/build-openclaw-skills.js. Если он устарел, тестовый набор провалится. Чтобы опубликовать навыки на ClawHub, выполните clawhub login один раз, затем node scripts/publish-openclaw-skills.js (он публикует все шесть навыков с версией из package.json; используйте --dry-run, чтобы предварительно просмотреть).
Бенчмарк корректности запускает Python для проверок электронной почты и CSV; сначала пробуется python3, затем python. Проверки CSV требуют локально установленного pandas.
Могу ли я использовать его с caveman? Да, и вы должны. Caveman сокращает то, что говорит агент; ponytail сокращает то, что он строит. Разные половины, без пересечений: caveman оставляет код точным до байта, ponytail не вмешивается в текст. Лаконичные разговоры о минимальном коде.
Ему нужен файл конфигурации?
Нет. Опциональный файл ~/.config/ponytail/config.json или переменная окружения PONYTAIL_DEFAULT_MODE могут установить уровень по умолчанию, но ничего не требуется.
А если мне действительно нужен класс кэша на 120 строк? Вам не нужен. Настаивайте всё равно, и он построит его. Медленно. Правильно. Глядя на вас.
Это масштабируется? Код, который вы никогда не написали, масштабируется бесконечно. Нулевые баги, нулевые уязвимости, 100% доступность с давних пор.
Почему "ponytail"? Вы точно знаете почему.
MIT. Самая короткая работающая лицензия.