prek — скилл для агентов
prek skill
Скилл prek учит агента настраивать Git-хуки на prek, Rust-замене pre-commit: конфиг, шимы, приоритеты, встроенные хуки и монорепозитории
- 8 673 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Команда `prek install` ставит шимы в каталог хуков Git, и они выполняются при каждом коммите и пуше
- Хуки из удаленных репозиториев prek скачивает, ставит им окружения и запускает, то есть исполняет сторонний код
- Форматтеры и исправляющие хуки правят файлы в рабочем дереве, а команда `prek update` обращается к сети за новыми ревизиями
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/prek-skillОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Команда `prek install` ставит шимы в каталог хуков Git, и они выполняются при каждом коммите и пуше
- Хуки из удаленных репозиториев prek скачивает, ставит им окружения и запускает, то есть исполняет сторонний код
- Форматтеры и исправляющие хуки правят файлы в рабочем дереве, а команда `prek update` обращается к сети за новыми ревизиями
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Скилл `prek` из репозитория prek объясняет агенту, как настраивать и запускать Git-хуки с помощью prek, Rust-реализации pre-commit. Сначала агент открывает индекс документации `llms.txt` на prek.j178.dev и берет подробности со страниц в формате Markdown. Для нового проекта скилл советует конфиг `prek.toml`, а при существующем `.pre-commit-config.yaml` оставляет его и меняет только команду с `pre-commit` на `prek`. Он описывает четыре вида репозиториев хуков: удаленный, `local`, `meta` и `builtin`, фильтры по регулярным выражениям и по маскам `glob`, поле `priority` для порядка и параллельного запуска, а также поля `env`, `priorities`, `minimum_prek_version` и `orphan`. Порядок работы такой: проверить, есть ли старый конфиг, поставить prek, проверить конфиг командой `prek validate-config`, установить шимы Git и подготовить окружения хуков командой `prek install --prepare-hooks`, затем прогнать `prek run --all-files`. При переходе с pre-commit шимы переустанавливают с флагом `-f`, а YAML переводит в TOML команда `prek util yaml-to-toml`. Для монорепозиториев скилл предлагает режим рабочих областей, вложенные конфиги, `.prekignore` и `orphan`. В скилле перечислены 24 встроенных хука без сети, от `trailing-whitespace` и `check-yaml` до `detect-private-key` и `check-signed-commit`.
Для кого. Для разработчиков, которые ведут проверки перед коммитом через pre-commit или хотят перейти на быстрый однофайловый prek, и для агентов, которым поручают настроить хуки в репозитории.
Подходит, если
- В репозитории нет хуков, и нужно настроить форматирование, линтеры и проверку файлов перед коммитом
- Проект уже на `.pre-commit-config.yaml`, и нужно перейти на prek без смены конфига
- Нужен конфиг `prek.toml` с приоритетами хуков и параллельным запуском
- Монорепозиторий с вложенными проектами требует отдельных конфигов, `.prekignore` и изоляции через `orphan`
- Нужны хуки без загрузки репозиториев: встроенные хуки с `repo: builtin` работают офлайн
Не подходит, если
- Нужна переносимость конфига на исходный pre-commit: тогда скилл советует оставить `.pre-commit-config.yaml` без ключей, которые есть только в prek
- Нужно останавливать команды самого агента до запуска: хуки prek срабатывают на событиях Git, а для перехвата действий агента в каталоге есть HOL Guard
- Язык хука не значится в справочнике Language Support: скилл просит сверить поддержку до обещаний совместимости
Пример запроса к агенту
Настрой в этом репозитории prek: возьми существующий .pre-commit-config.yaml, установи хуки Git и прогони все файлыОграничения
- Скилл не содержит справочника команд целиком: он отсылает к онлайн-документации prek.j178.dev и к индексу `llms.txt`. Без доступа к сайту агент получит только краткую выжимку.
- Примеры конфигов используют многострочные встроенные таблицы из TOML 1.1. Если редактор или парсер в цепочке их не понимает, скилл предлагает записывать хуки как `[[repos.hooks]]`.
- Хуки удаленных репозиториев, например `ruff-pre-commit`, prek скачивает и запускает, а команда `prek update` обновляет закрепленные ревизии `rev`. Сторонний код при этом выполняется на вашей машине.
- Приоритет `priority` действует внутри одного файла конфигурации и не сравнивается между проектами рабочей области.
- Скилл ставится командой `gh skill install`, которой нужен GitHub CLI версии 2.90.0 или новее. Документация не называет клиентов агентов. Автор отмечает, что prek еще молодой проект. Лицензия MIT.
Как отключить. Удалите папку скилла `prek` из каталога скиллов агента. Шимы, которые поставила команда `prek install`, лежат в каталоге хуков репозитория: удалите файлы `pre-commit`, `pre-push` и `commit-msg`, созданные prek. Файл `prek.toml` или `.pre-commit-config.yaml` остается в проекте.
Частые вопросы
Как поставить скилл prek?
Выполните `gh skill install j178/prek prek`: команде нужен GitHub CLI версии 2.90.0 или новее. Эта команда указана в документации prek в блоке про скилл для агентов.
Нужно ли переписывать конфиг pre-commit?
Нет. Скилл советует при переходе оставить `.pre-commit-config.yaml` и заменить команды с `pre-commit` на `prek`, а шимы переустановить через `prek install -f`. Если нужен новый формат, YAML переводит в `prek.toml` команда `prek util yaml-to-toml`, ручной перенос скилл не рекомендует.
Какие встроенные хуки есть в prek?
Скилл называет 24 встроенных хука с `repo: builtin`: проверки JSON, JSON5, JSONC, TOML, YAML и XML, пробелы в конце строк, конфликты слияния, закрытые ключи, крупные файлы, ветки, закрытые для коммитов и проверку подписи коммитов. Они работают офлайн и без подготовки окружения.
Как задать порядок запуска хуков?
Хуки с меньшим значением `priority` запускаются раньше, а с одинаковым могут идти параллельно. Верхнеуровневое поле `priorities` задает понятные имена для чисел. Значение действует внутри одного файла конфигурации.
Как подключить prek в монорепозитории?
Скилл предлагает режим рабочих областей вместо одного огромного корневого конфига: вложенные конфиги в подпроектах, файл `.prekignore` для исключений и поле `orphan: true`, которое изолирует вложенный проект от родительских конфигов.
Как отладить сбой хука?
Запустите `prek run -vvv` для подробного вывода или `PREK_NO_FAST_PATH=1 prek run`, чтобы сравнить встроенный быстрый путь с обычным. Переменные `PREK_HOME`, `PREK_SKIP` и лимиты параллелизма описаны в справочнике переменных окружения.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл KubeShark: агент сначала ищет режим отказа, потом пишет манифесты, Helm и Kustomize по официальным практикам и возвращает план проверки и отката
Локальный шлюз перед git push: ревью, тесты, документация и линтер проходят в отдельной копии, и только после этого ветка уходит в удаленный репозиторий
Скилл Vercel для монорепозиториев на Turborepo: настройка turbo.json, кеш, фильтры и CI по документации, которая лежит в установленном пакете
Библиотека паттернов и скиллов для регулярных агентских циклов: разбор issue, чистка зависимостей, сопровождение PR
Официальный набор скиллов Grafana: PromQL, Loki, Tempo, Alloy, k6, дашборды и алертинг для Claude Code, Cursor и Codex
Официальные скиллы HashiCorp для Terraform и Packer: стиль HCL, модули, тесты, импорт, Stacks, разработка провайдеров и сборка образов
Коротко о README
В репозитории лежит исходный код prek на Rust, документация сайта в папке `docs/`, скилл в `skills/prek/SKILL.md` и `AGENTS.md` с правилами для контрибьюторов и агентов. Главная страница начинается с описания и списка возможностей: один бинарный файл без зависимостей, совместимость с конфигами pre-commit, режим рабочих областей, интеграция с `uv`. Дальше идут способы установки (скрипт для Linux и Windows, PyPI, Homebrew и другие), быстрый старт, список проектов вроде CPython, Apache Airflow и FastAPI, подключение в GitHub Actions и блок про скилл.
Бейдж для README
Исходный SKILL.md
--- name: prek description: Use when setting up or running hooks with prek in any repository. prek is a Rust drop-in alternative to pre-commit for running Git hooks that check, format, lint, and validate code and repository files. Prefer it when speed, workspace mode, built-in hooks, shared toolchains, or native TOML configuration matter. --- # prek Use this skill when the user wants to set up or run Git hooks with `prek`. `prek` is a Rust reimplementation of `pre-commit`. Its main job is to run hooks that check code and repository files before commit or on demand: formatters, linters, validators, security checks, and custom project checks. ## Start with the public docs Use the LLM-oriented index first: - [llms.txt](https://prek.j178.dev/llms.txt) Per that file, prefer explicit markdown docs when you need details: - [Introduction](https://prek.j178.dev/index.md) - [Installation](https://prek.j178.dev/installation/index.md) - [Quickstart](https://prek.j178.dev/quickstart/index.md) - [Running Hooks](https://prek.j178.dev/running-hooks/index.md) - [Cookbook](https://prek.j178.dev/cookbook/index.md) - [Configuration](https://prek.j178.dev/configuration/index.md) - [Monorepos](https://prek.j178.dev/monorepos/index.md) - [Language Support](https://prek.j178.dev/reference/language-support/index.md) - [Built-in Hooks](https://prek.j178.dev/built-in-hooks/index.md) - [CLI Reference](https://prek.j178.dev/reference/cli/index.md) - [Configuration Reference](https://prek.j178.dev/reference/configuration/index.md) - [Environment Variable Reference](https://prek.j178.dev/reference/environment-variables/index.md) - [Differences from pre-commit](https://prek.j178.dev/diff/index.md) - [Benchmark](https://prek.j178.dev/benchmark/index.md) ## What prek is for Use `prek` to: - run hooks that check source code and repo contents - install Git hook shims such as `pre-commit`, `pre-push`, and `commit-msg` - run the same hook ecosystem used by `pre-commit` - manage hook runtimes and toolchains for supported languages - validate configs, update pinned hook revisions, and inspect configured hooks Typical jobs for hooks run by `prek`: