English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
Это руководство объясняет, как настроить системную подсказку, которую GAC использует для генерации сообщений коммитов, позволяя вам определить свой собственный стиль и соглашения для сообщений коммитов.
- Пользовательские системные подсказки
GAC использует две подсказки при генерации сообщений коммитов:
- Системная подсказка (настраиваемая): Инструкции, которые определяют роль, стиль и соглашения для сообщений коммитов
- Пользовательская подсказка (автоматическая): Данные git diff, показывающие что изменилось
Системная подсказка говорит AI КАК писать сообщения коммитов, в то время как пользовательская подсказка предоставляет ЧТО (фактические изменения кода).
Вам может понадобиться пользовательская системная подсказка, если:
- Ваша команда использует другой стиль сообщений коммитов, чем обычные коммиты
- Вы предпочитаете эмодзи, префиксы или другие пользовательские форматы
- Вы хотите больше или меньше деталей в сообщениях коммитов
- У вас есть специфичные для компании руководства или шаблоны
- Вы хотите соответствовать голосу и тону вашей команды
- Вы хотите сообщения коммитов на другом языке (смотрите Конфигурацию языка ниже)
-
Создайте ваш файл пользовательской системной подсказки:
# Скопируйте пример как отправную точку cp custom_system_prompt.example.txt ~/.config/gac/my_system_prompt.txt # Или создайте свой с нуля vim ~/.config/gac/my_system_prompt.txt
-
Добавьте в ваш файл
.gac.env:# В ~/.gac.env или проектном уровне .gac.env GAC_SYSTEM_PROMPT_PATH=/path/to/your/custom_system_prompt.txt -
Протестируйте:
uvx gac --dry-run
Вот и всё! GAC теперь будет использовать ваши пользовательские инструкции вместо стандартных.
Ваша пользовательская системная подсказка может быть простым текстом - специальный формат или XML-теги не требуются. Просто напишите чёткие инструкции о том, как AI должен генерировать сообщения коммитов.
Ключевые вещи, которые стоит включить:
- Определение роли - Что должен делать AI
- Требования к формату - Структура, длина, стиль
- Примеры - Покажите, как выглядят хорошие сообщения коммитов
- Ограничения - Чего избегать или требования к выполнению
Пример структуры:
Вы - автор сообщений коммитов для [вашего проекта/команды].
При анализе изменений кода, создайте сообщение коммита, которое:
1. [Первое требование]
2. [Второе требование]
3. [Третье требование]
Пример формата:
[Покажите пример сообщения коммита]
Ваш весь ответ будет использован непосредственно как сообщение коммита.
Смотрите custom_system_prompt.example.txt для полного примера на основе эмодзи.
Быстрый фрагмент:
Вы - автор сообщений коммитов, который использует эмодзи и дружелюбный тон.
Начинайте каждое сообщение с эмодзи:
- 🎉 для новых функций
- 🐛 для исправлений ошибок
- 📝 для документации
- ♻️ для рефакторинга
Держите первую строку под 72 символами и объясняйте ПОЧЕМУ изменение важно.
Вы пишете сообщения коммитов для корпоративного банковского приложения.
Требования:
1. Начинайте с номера билета JIRA в скобках (например, [BANK-1234])
2. Используйте формальный, профессиональный тон
3. Включите последствия для безопасности, если релевантно
4. Ссылайтесь на любые требования соответствия (PCI-DSS, SOC2 и т.д.)
5. Держите сообщения краткими, но полными
Формат:
[TICKET-123] Краткое описание изменения
Подробное объяснение того, что изменилось и почему. Включите:
- Бизнес-обоснование
- Технический подход
- Оценку рисков (если применимо)
Пример:
[BANK-1234] Реализация ограничения скорости для конечных точек входа
Добавлено ограничение скорости на основе Redis для предотвращения атак грубой силы.
Ограничивает попытки входа до 5 на IP за 15 минут.
Соответствует требованиям безопасности SOC2 для контроля доступа.
Вы - технический автор сообщений коммитов, который создаёт всестороннюю документацию.
Для каждого коммита предоставьте:
1. Чёткое, описательное название (под 72 символами)
2. Пустую строку
3. ЧТО: Что было изменено (2-3 предложения)
4. ПОЧЕМУ: Почему изменение было необходимо (2-3 предложения)
5. КАК: Технический подход или ключевые детали реализации
6. ВОЗДЕЙСТВИЕ: Файлы/компоненты, на которые повлияло, и потенциальные побочные эффекты
Используйте техническую точность. Ссылайтесь на конкретные функции, классы и модули.
Используйте настоящее время и активный залог.
Пример:
Рефакторинг промежуточного ПО аутентификации для использования внедрения зависимостей
ЧТО: Заменено глобальное состояние аутентификации на внедряемый AuthService. Обновлены все обработчики маршрутов для принятия AuthService через внедрение конструктора.
ПОЧЕМУ: Глобальное состояние затрудняло тестирование и создавало скрытые зависимости.
Внедрение зависимостей улучшает тестируемость и делает зависимости явными.
КАК: Создан интерфейс AuthService, реализованы JWTAuthService и MockAuthService.
Модифицированы конструкторы обработчиков маршрутов для требования AuthService.
Обновлена конфигурация контейнера внедрения зависимостей.
ВОЗДЕЙСТВИЕ: Влияет на все аутентифицированные маршруты. Нет изменений в поведении для пользователей.
Тесты теперь работают в 3 раза быстрее с MockAuthService. Требуется миграция для routes/auth.ts, routes/api.ts и routes/admin.ts.
- ✅ Будьте конкретны - Чёткие инструкции дают лучшие результаты
- ✅ Включайте примеры - Покажите AI, как выглядит хорошее сообщение
- ✅ Тестируйте итеративно - Попробуйте вашу подсказку, уточняйте на основе результатов
- ✅ Держите сфокусированным - Слишком много правил могут запутать AI
- ✅ Используйте последовательную терминологию - Придерживайтесь одних и тех же терминов на протяжении всего текста
- ✅ Заканчивайте напоминанием - Подтвердите, что ответ будет использован как есть
- ❌ Используйте XML-теги - Простой текст работает лучше (если вы не хотите именно такую структуру)
- ❌ Делайте слишком длинным - Стремитесь к 200-500 словам инструкций
- ❌ Противоречьте себе - Будьте последовательны в своих требованиях
- ❌ Забывайте о конце - Всегда напоминайте: "Ваш весь ответ будет использован непосредственно как сообщение коммита"
- Начните с примера - Скопируйте
../../examples/custom_system_prompt.example.txtи измените его - Тестируйте с
--dry-run- Увидьте результат без создания коммита - Используйте
--show-prompt- Увидите, что отправляется в AI - Итерируйте на основе результатов - Если сообщения не совсем такие, как надо, отрегулируйте ваши инструкции
- Контролируйте версию вашей подсказки - Храните вашу пользовательскую подсказку в репозитории вашей команды
- Специфичные для проекта подсказки - Используйте проектный уровень
.gac.envдля специфичных для проекта стилей
Проблема: Ваши пользовательские сообщения с эмодзи получают добавление "chore:".
Решение: Этого не должно происходить - GAC автоматически отключает принуждение обычных коммитов при использовании пользовательских системных подсказок. Если вы видите это, пожалуйста, создайте заявку.
Проблема: Сгенерированные сообщения не следуют вашему пользовательскому формату.
Решение:
- Сделайте ваши инструкции более явными и конкретными
- Добавьте чёткие примеры желаемого формата
- Закончите: "Ваш весь ответ будет использован непосредственно как сообщение коммита"
- Уменьшите количество требований - слишком многие могут запутать AI
- Попробуйте использовать другую модель (некоторые следуют инструкциям лучше, чем другие)
Проблема: Сгенерированные сообщения не соответствуют вашим требованиям к длине.
Решение:
- Будьте явными о длине (например, "Держите сообщения под 50 символов")
- Покажите примеры точной длины, которую вы хотите
- Рассмотрите использование флага
--one-linerтакже для коротких сообщений
Проблема: GAC всё ещё использует стандартный формат коммитов.
Решение:
-
Проверьте, что
GAC_SYSTEM_PROMPT_PATHустановлен правильно:uvx gac config get GAC_SYSTEM_PROMPT_PATH
-
Проверьте, что путь к файлу существует и читаем:
cat "$GAC_SYSTEM_PROMPT_PATH" -
Проверьте файлы
.gac.envв этом порядке:- Уровень проекта:
./.gac.env - Уровень пользователя:
~/.gac.env
- Уровень проекта:
-
Попробуйте абсолютный путь вместо относительного
Примечание: Вам не нужна пользовательская системная подсказка, чтобы изменить язык сообщений коммитов!
Если вы хотите изменить только язык ваших сообщений коммитов (сохраняя стандартный формат обычных коммитов), используйте интерактивный селектор языка:
uvx gac languageЭто покажет интерактивное меню с 25+ языками в их родных сценариях (Español, Français, 日本語 и т.д.). Выберите ваш предпочтительный язык, и он автоматически установит GAC_LANGUAGE в вашем файле ~/.gac.env.
Альтернативно, вы можете вручную установить язык:
# В ~/.gac.env или проектном уровне .gac.env
GAC_LANGUAGE=SpanishПо умолчанию, префиксы обычных коммитов (feat:, fix: и т.д.) остаются на английском для совместимости с инструментами changelog и конвейерами CI/CD, в то время как весь остальной текст на вашем указанном языке.
Хотите перевести префиксы тоже? Установите GAC_TRANSLATE_PREFIXES=true в вашем .gac.env для полной локализации:
GAC_LANGUAGE=Spanish
GAC_TRANSLATE_PREFIXES=trueЭто переведёт всё, включая префиксы (например, corrección: вместо fix:).
Это проще, чем создание пользовательской системной подсказки, если язык - ваша единственная потребность в настройке.
Проблема: Хочу временно использовать стандартные подсказки.
Решение:
# Вариант 1: Снять установку переменной окружения
uvx gac config unset GAC_SYSTEM_PROMPT_PATH
# Вариант 2: Закомментировать в .gac.env
# GAC_SYSTEM_PROMPT_PATH=/path/to/custom_prompt.txt
# Вариант 3: Использовать другой .gac.env для конкретных проектов- USAGE.md - Флаги и опции командной строки
- README.md - Установка и базовая настройка
- TROUBLESHOOTING.md - Общее устранение неполадок
- Сообщайте о проблемах: GitHub Issues
- Делитесь вашими пользовательскими подсказками: Взносы приветствуются!