Проблема: AI пишет код, но не объясняет контекст
Современные AI-ассистенты отлично генерируют рабочий код, но часто упускают из виду архитектурные риски, побочные эффекты и логику ревьюера. diff-tour от init-co-jp решает эту проблему, превращая стандартный git diff в пошаговую интерактивную экскурсию. Инструмент обучен на базе знаний опытных инженеров (коллекция internal/generate/lessons), чтобы имитировать их подход к чтению кода: от понимания цели изменений до оценки рисков при масштабировании.
Как это работает: от диффа до JSON-тура
Процесс полностью автоматизирован и занимает 2–5 минут. Утилита не меняет ваш репозиторий и работает только с читаемыми данными. Алгоритм выглядит так:
- Экспорт:
git archiveиgit diffсоздают изолированную директорию с файлами до и после изменений. Файлы из.gitignore(например,.env) исключены. - Генерация: LLM (Claude, Codex, Gemini и др.) анализирует контекст, используя промпты, основанные на лучших практиках ревью.
- Валидация:
diff-tourпроверяет ссылки на файлы и строки в сгенерированном JSON. При ошибках запрос отправляется на исправление (максимум 2 раза). - Просмотр: Пользователь проходит тур клавишами
→и←. Код на экране берется напрямую из Git, а не из ответа LLM, что гарантирует точность.
Безопасность: Read-Only режим и изоляция
Ключевая особенность проекта — строгие ограничения для AI-моделей. Утилита передает специфичные флаги, чтобы LLM не мог выйти за пределы изолированной директории, получить доступ к сети или выполнить команды.
| Инструмент | Механизм ограничения | Ключевые флаги/настройки |
|---|---|---|
| Claude Code | Ограничение инструментов и прав | --restricted, --tools Read,Grep,Glob, --permission-mode dontAsk, --no-session-persistence |
| Codex CLI | Песочница (Sandbox) | --ignore-user-config, -c approval_policy="never", -c web_search="disabled", --ephemeral |
| Gemini CLI | Admin Policy | Разрешены только read_file, glob, grep_search, list_directory. Отключены MCP, расширения и телеметрия. |
Что именно анализирует AI?
В отличие от простых линтеров, diff-tour задает вопросы, характерные для сеньор-ревью:
- Контракт: Сохраняет ли код старые гарантии? Что происходит при сбоях или повторном вызове?
- Безопасность отката: Можно ли безопасно откатить это изменение?
- Масштабируемость: Что произойдет при увеличении данных в 100 раз?
- Тесты: Падут ли тесты, если код сломается в конкретном месте?
Инструмент доступен для установки через скрипт curl -fsSL .../install.sh и требует наличия одного из поддерживаемых CLI-инструментов с авторизованным аккаунтом. Это ранняя версия (early release), формат экрана может меняться, но базовая логика уже готова к использованию.
Источник: Github ↗
