go generate — инструмент для кодогенерации. Ты пишешь в исходнике специальный комментарий, а go generate ./... запускает указанную команду.
//go:generate stringer -type=Color
//go:generate mockgen -source=repo.go -destination=mock_repo.go
//go:generate protoc --go_out=. service.proto
Важно: go generate не запускается автоматически при go build — его надо вызывать явно. Сгенерированный код коммитится в репо. Типичные применения: генерация моков, enum-строк, protobuf, sqlc. По сути это просто удобная обёртка для запуска произвольных команд, привязанных к конкретным файлам.