# go

Задаёт стандарты написания идиоматичного Go-кода по гайдам Effective Go и Google. Помогает GitHub Copilot соблюдать структуру пакетов и чистоту синтаксиса.

- правило · `type=rule` · GitHub Copilot · ★ 40418
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/instructions/go.instructions.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/rules/go

## Что делает

Правило настраивает генерацию Go-кода в файлах `**/*.go`, `go.mod` и `go.sum`. В его основе лежат рекомендации Effective Go и руководства по стилю от Google. Ассистент учится выравнивать основной сценарий по левому краю и возвращать значения сразу, избегая длинных цепочек `else`. Для типичных операций правило предписывает использовать стандартную библиотеку вроде `strings.Builder` и `filepath.Join`.

Отдельный блок посвящён объявлению пакетов: помощник обязан оставлять ровно одну строку `package` на файл и избегать размытых имён вроде `util` или `common`. Эмодзи запрещены в коде и комментариях. Все комментарии пишутся полными английскими предложениями. Ошибки оборачиваются через `fmt.Errorf` с глаголом `%w` и возвращаются последним аргументом под именем `err`.

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

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/instructions/go.instructions.md` — Поле applyTo задаёт, к каким файлам применять

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/go.md` — Поле paths во frontmatter ограничивает файлы: applyTo из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/rules/go.mdc` — Во frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/go.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/go.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/instructions/go.instructions.md

## Когда брать
- предотвратить дублирование строк `package` при генерации файлов
- устранить глубокую вложенность логики через ранние возвраты
- оборачивать ошибки через `fmt.Errorf` со спецификатором `%w`
- структурировать проект с разделением на каталоги `cmd` и `internal`

## Примеры запросов агенту
- Сделай каркас сервиса авторизации с разделением кода на `cmd` и `internal`
- Напиши функцию парсинга конфигурации с ранними возвратами и оборачиванием ошибок
- Создай компактный интерфейс хранилища сессий с одним методом сохранения

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 770 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
