Локальный 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`:

Ключевые возможности

  1. Быстрое обнаружение изменений: Как только вы сохраняете измененный .prompt или .md файл, расширение регистрирует это. На иконке PromptGit в боковой панели обновляется счетчик изменений.
  2. Сравнение версий (Diff): Двойной клик по измененному файлу открывает стандартный split-screen редактор VS Code, где наглядно видны добавленные и удаленные строки.
  3. Точки восстановления (Checkout): Вы можете просматривать историю коммитов, изучать состояние файлов на любой момент в прошлом и восстанавливать нужные версии промптов.
  4. Кроссплатформенность и автономность: Расширение написано на чистом TypeScript/JavaScript без тяжелых бинарных зависимостей (вроде node-gyp), поэтому оно стабильно работает на Windows, macOS и Linux. Пути к файлам автоматически приводятся к единому формату POSIX, чтобы базой изменений можно было делиться между разными операционными системами.

    Как попробовать в работе
  5. Если вы хотите запустить и протестировать проект у себя локально:
  6. Склонируйте репозиторий и откройте его в VS Code.
  7. Соберите проект: npm run build

    Простой сценарий для проверки:
  8. Откройте любой .prompt файл в тестовой папке и измените пару слов.
  9. Сохраните файл — на панели PromptGit появится уведомление об изменениях.
  10. Напишите сообщение к коммиту (например, "Оптимизация системной инструкции") и нажмите Commit.
  11. Перейдите во вкладку History, чтобы увидеть сохраненную контрольную точку.

Заключение

PromptGit задумывался как утилита, которая помогает поддерживать порядок в основном репозитории и одновременно даёт свободу экспериментов при проектировании ИИ-инструкций. Проект полностью открытый и распространяется под лицензией MIT.

Если вам близок такой подход или вы сталкивались с похожими трудностями при версионировании промптов, вы можете изучить исходный код, предложить свои улучшения или сообщить об ошибках в репозитории проекта.

Ссылка на репозиторий: GitHub - PromptGit