Инструкции для coding agents, работающих в этом репозитории.
Работать нужно в стиле Test-Driven Development. Любое изменение поведения должно выполняться маленькими итерациями по циклу:
- Red — сначала описать ожидаемое поведение тестом.
- Запустить релевантный тест и убедиться, что он падает по ожидаемой причине.
- Green — внести минимальную реализацию, достаточную для прохождения теста.
- Запустить тесты и убедиться, что они проходят.
- Refactor — аккуратно улучшить код, не меняя поведения.
- Повторять цикл до завершения задачи.
Если тест невозможно или нецелесообразно написать до изменения кода, агент обязан явно зафиксировать причину в ответе и всё равно добавить проверку поведения после реализации, если это возможно.
Перед реализацией нужно грамотно сформулировать тест-кейсы:
- для багов — сначала добавить регрессионный тест, воспроизводящий проблему;
- для новых функций — покрыть основной сценарий, важные edge cases и ошибки;
- для изменения UX/TUI — проверять состояние модели, ключевые строки рендера и пользовательские сценарии ввода;
- для storage/config/sync — проверять реальные переходы состояния через публичные API, используя изолированное окружение/temporary data;
- использовать table-driven tests там, где есть несколько однотипных случаев;
- избегать хрупких тестов, завязанных на несущественные детали форматирования;
- имена тестов должны описывать поведение, а не внутреннюю реализацию.
Не делать большие изменения одним куском. Работать маленькими проверяемыми шагами:
- Уточнить ожидаемое поведение.
- Найти ближайший уровень тестирования: unit, integration, CLI/TUI model.
- Добавить минимальный тест.
- Запустить целевые тесты.
- Исправить код.
- Запустить целевые тесты снова.
- В конце запустить полный набор:
go test ./...Если полный набор тестов не запускается или падает по внешней причине, нужно явно указать это в финальном ответе.
Основная проверка:
go test ./...Форматирование Go-кода:
gofmt -w <files>- Сохранять существующее поведение, если задача явно не требует обратного.
- Для каждого исправленного бага оставлять тест, который предотвратит регрессию.
- Не удалять и не ослаблять тесты без явной причины.
- Предпочитать простую реализацию сложной, пока тесты не требуют большего.
- После refactor-фазы обязательно повторно запускать тесты.