Введение
Что такое PRECC?
PRECC (Предиктивная коррекция ошибок для Claude Code) — это инструмент на Rust, который перехватывает bash-команды Claude Code через официальный механизм PreToolUse hook. Он исправляет ошибки до их возникновения, экономя токены и устраняя циклы повторных попыток.
Бесплатно для участников сообщества.
Проблема
Claude Code тратит значительное количество токенов на предотвратимые ошибки:
- Ошибки неверного каталога – Запуск
cargo buildв родительском каталоге безCargo.toml, затем повторная попытка после чтения ошибки. - Циклы повторных попыток – Неудачная команда производит подробный вывод, Claude читает его, рассуждает и повторяет. Каждый цикл сжигает сотни токенов.
- Подробный вывод – Такие команды, как
findилиls -R, выводят тысячи строк, которые Claude должен обработать.
Четыре столпа
Исправление контекста (cd-prepend)
Определяет, когда команды вроде cargo build или npm test выполняются в неправильном каталоге, и добавляет cd /правильный/путь && перед выполнением.
Отладка GDB
Обнаруживает возможности подключения GDB для более глубокой отладки segfault’ов и сбоев, предоставляя структурированную отладочную информацию вместо сырых core dump’ов.
Майнинг сессий
Извлекает из журналов сессий Claude Code пары ошибка-исправление. Когда та же ошибка повторяется, PRECC уже знает исправление и применяет его автоматически.
Навыки автоматизации
Библиотека встроенных и извлечённых навыков, которые сопоставляют шаблоны команд и переписывают их. Навыки определяются как файлы TOML или строки SQLite, что упрощает их проверку, редактирование и совместное использование.
Как это работает (30-секундная версия)
- Claude Code собирается выполнить bash-команду.
- PreToolUse hook отправляет команду в
precc-hookв виде JSON через stdin. precc-hookобрабатывает команду через пайплайн (навыки, коррекция каталога, сжатие) менее чем за 3 миллисекунды.- Исправленная команда возвращается как JSON через stdout.
- Claude Code выполняет исправленную команду вместо исходной.
Тривиальные ошибки сворачиваются; причина перезаписи передаётся в ответе хука, поэтому каждая коррекция проверяема, а не молчалива.
Граница безопасности
PRECC выполняет перезапись только тогда, когда семантическая эквивалентность доказуемо сохраняется или верифицируема пользователем. Деструктивные команды (rm, git push --force, git reset --hard) никогда не перезаписываются, даже при совпадении навыка. Каждая мутация должна быть ограниченной — перезаписанная команда должна содержать основные токены оригинала. Неограниченные перезаписи автоматически откатываются. Каждая применённая перезапись логируется и отображается, чтобы вы могли её проверить, отключить или отменить.
Адаптивное сжатие
Если команда завершается ошибкой после сжатия, PRECC автоматически пропускает сжатие при следующей попытке, чтобы Claude получил полный несжатый вывод для отладки.
Статистика использования в реальном времени
Текущая версия –:
| Показатель | Значение |
|---|---|
| Вызовы хука | – |
| Сэкономлено токенов | – |
| Доля экономии | –% |
| Перезаписи RTK | – |
| Коррекции CD | – |
| Задержка хука | – ms (p50) |
| Пользователи | – |
Измеренная экономия (реальные данные)
Экономия по версиям
Эти числа автоматически обновляются из анонимизированной телеметрии.
Ссылки
- GitHub: https://github.com/peria-ai/precc-cc
- Веб-сайт: https://peria.ai
- Документация: https://precc.cc