Локальный Git для промптов прямо в VS Code: как перестать засорять историю основного репозитория
Каждый, кто пробовал настраивать LLM под конкретные задачи, сталкивался с этой проблемой. Промпт-инжиниринг — это непрерывный процесс микро-изменений. Вы меняете одно слово в системной инструкции, тестируете, затем меняете ещё одно, откатываете назад, пробуете другую формулировку.
Если фиксировать каждый такой шаг в основном Git-репозитории проекта, история коммитов быстро превращается в хаос из сообщений вроде fix prompt, fix prompt 2, testing prompt again, revert prompt changes.
Чтобы решить эту проблему, был разработан PromptGit — легковесная локальная система контроля версий (VCS), созданная специально для работы с промптами. Она встраивается прямо в боковую панель VS Code и позволяет отслеживать, сравнивать и откатывать изменения в промптах локально, не загрязняя историю основного проекта.
В чём основная идея?
PromptGit работает по принципу «offline-first» и изолированно от основного Git. Он отслеживает только файлы с расширениями .prompt и .md в вашей рабочей области.
Инструмент решает несколько простых, но важных задач:
- Изолированное хранение: Все ревизии сохраняются в локальной скрытой папке .prompts/ внутри вашего проекта.
- Привычный рабочий процесс: Интерфейс напоминает стандартный Git — вы видите список изменённых файлов, можете написать комментарий и сделать коммит в один клик.
- Интеграция с VS Code: Расширение использует нативную цветовую палитру редактора, поддерживает темную/светлую темы и показывает количество измененных файлов на иконке панели (badge count).
Как это устроено внутри
Архитектура PromptGit во многом упрощенно повторяет структуру самого Git, используя контентно-адресуемое хранилище данных:
ВАШ_ПРОЕКТ/
├── .prompts/ <-- Скрытый локальный репозиторий
│ ├── index.json <-- Индекс для отслеживания изменений
│ ├── history.json <-- Хронологический лог коммитов и состояний
│ └── objects/ <-- Снапшоты содержимого, названные по хэшу
│ ├── a1b2c3d4e5f6.txt
│ └── f8e7d6c5b4a3.txt
Чтобы база данных `.prompts` не мешалась в проводнике VS Code, расширение автоматически добавляет её в исключения в настройках `.vscode/settings.json`:
Ключевые возможности
- Быстрое обнаружение изменений: Как только вы сохраняете измененный .prompt или .md файл, расширение регистрирует это. На иконке PromptGit в боковой панели обновляется счетчик изменений.
- Сравнение версий (Diff): Двойной клик по измененному файлу открывает стандартный split-screen редактор VS Code, где наглядно видны добавленные и удаленные строки.
- Точки восстановления (Checkout): Вы можете просматривать историю коммитов, изучать состояние файлов на любой момент в прошлом и восстанавливать нужные версии промптов.
- Кроссплатформенность и автономность: Расширение написано на чистом TypeScript/JavaScript без тяжелых бинарных зависимостей (вроде node-gyp), поэтому оно стабильно работает на Windows, macOS и Linux. Пути к файлам автоматически приводятся к единому формату POSIX, чтобы базой изменений можно было делиться между разными операционными системами.
Как попробовать в работе - Если вы хотите запустить и протестировать проект у себя локально:
- Склонируйте репозиторий и откройте его в VS Code.
- Соберите проект: npm run build
Простой сценарий для проверки: - Откройте любой .prompt файл в тестовой папке и измените пару слов.
- Сохраните файл — на панели PromptGit появится уведомление об изменениях.
- Напишите сообщение к коммиту (например, "Оптимизация системной инструкции") и нажмите Commit.
- Перейдите во вкладку History, чтобы увидеть сохраненную контрольную точку.
Заключение
PromptGit задумывался как утилита, которая помогает поддерживать порядок в основном репозитории и одновременно даёт свободу экспериментов при проектировании ИИ-инструкций. Проект полностью открытый и распространяется под лицензией MIT.
Если вам близок такой подход или вы сталкивались с похожими трудностями при версионировании промптов, вы можете изучить исходный код, предложить свои улучшения или сообщить об ошибках в репозитории проекта.
Ссылка на репозиторий: GitHub - PromptGit