Go Guidelines — плагин

Скилл-плагин заставляет агента писать современный Go: версия из go.mod, дженерики, конкурентность и проверка go fix.

  • 104 ★ репозитория
  • Последний коммит
Плагин

Расширенный доступ

Почему такой уровень

  • Скилл заставляет агента запускать линтер, тесты и `go fix`, а последний правит исходные файлы.
Все причины и проверки

mhmtszr/go-guidelines

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add plugins/go-guidelines

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл заставляет агента запускать линтер, тесты и `go fix`, а последний правит исходные файлы.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Go Guidelines дает агенту явный справочник по Go, привязанный к версии языка. Агент определяет версию по `go.mod`, загружает только нужные справочные файлы и пишет код с приемами, доступными до этой версии. Справочники охватывают современный синтаксис, дженерики, срезы и карты, обработку ошибок, контекст, конкурентность, производительность, типичные ловушки и тесты. После правок агент запускает линтер (или `go vet`), тесты с `go test -race`, а на Go 1.26 и новее еще и `go fix`. Плагин рассчитан на типичные слабости ИИ: отставание обучающих данных от новых возможностей языка, привычку выбирать самые частые старые приемы, неограниченные горутины, неверный порядок остановки сервера и базы данных. Установка отдельная для Claude Code, Codex CLI, Cursor, OpenCode и Pi.

Для кого. Go-разработчикам, которые просят агента писать сервисы и хотят получать код без устаревших приемов и утечек горутин.

Подходит, если

  • Агент пишет новый сервис на Go и должен учитывать версию из `go.mod`.
  • Нужен порядок остановки: сначала HTTP-сервер, потом база данных.
  • Код проверяется с детектором гонок и `go fix` после каждой правки.
  • Старый проект переходит на Go 1.25 или 1.26, и агент должен применять новые возможности.

Не подходит, если

  • Проект написан не на Go: справочники рассчитаны только на этот язык.
  • Команда принимает свои стандарты кода, которые расходятся с этими правилами.
  • В среде агент не может запускать линтер и тесты.

Пример запроса к агенту

Напиши HTTP-сервис с корректной остановкой и пулом воркеров, по версии Go из go.mod, и запусти тесты с детектором гонок.

Ограничения

Скилл сообщает агенту правила, но не гарантирует их исполнения: качество кода по-прежнему проверяют линтер, тесты и ревью. Агент определяет версию Go по файлам `go.mod`, поэтому в проектах с несколькими модулями выбирает самую частую версию. Проверка с `go fix` предусмотрена только для Go 1.26 и новее. Часть описанных возможностей относится к версиям Go, которые вышли недавно, и работает только после их установки. Для каждого инструмента плагин ставят отдельно: установка в Claude Code не переносится в Cursor или Codex. Для Pi есть собственное расширение.

Как отключить. Удалите плагин командой `/plugin uninstall go-guidelines@go-guidelines-marketplace`. Для Cursor удалите папку `~/.cursor/plugins/local/go-guidelines`.

Частые вопросы

Как поставить Go Guidelines в Claude Code?

Выполните `/plugin marketplace add mhmtszr/go-guidelines`, затем `/plugin install go-guidelines@go-guidelines-marketplace`.

Как поставить в Cursor?

Склонируйте репозиторий командой `git clone https://github.com/mhmtszr/go-guidelines.git ~/.cursor/plugins/local/go-guidelines` и перезапустите Cursor или окно.

Как узнать, какую версию Go учитывает агент?

Скилл читает версию из `go.mod` проекта и выводит ее в начале. Если файла нет, версия считается неизвестной.

Что проверяется после правок?

Линтер или `go vet`, тесты с `go test -race`, а на Go 1.26 и новее еще `go fix`.

Как поставить для Pi?

Выполните `pi install git:github.com/mhmtszr/go-guidelines`. Для локальной разработки Pi запускают с флагом `-e` и путем к папке.

Обсуждение

Вопросов и отзывов пока нет.

Плагины

go-modern-guidelines

Modern Go Guidelines

Скилл-гайдлайны, которые учат агента писать современный Go: новые идиомы языка и стандартной библиотеки под версию проекта

СкиллМинимальный доступ4 тыс.Звезды репозитория

Плагин csharp-guidelines сверяет код агента на .NET с правилами Денниса Думена AV0100–AV2400 для языка до версии 14.

ПлагинМинимальный доступ784Звезды репозитория

Семь скиллов по Go от автора Cobra, Viper и Hugo: стиль языка, CLI, релизы, Wails, файловые операции и тесты на afero

ПлагинМинимальный доступ702Звезды репозитория

Плагин из 33 скиллов с воротами: вопрос к задаче, сверка фактов с источниками, тесты вперед, обзор второй моделью

ПлагинРасширенный доступ119Звезды репозитория

Procoder — бинарный файл на Go с гейтом перед коммитом, контроллерами качества и журналом уроков, чтобы агент не сдавал сырое

ПлагинРасширенный доступ211Звезды репозитория

35 навыков по Go, которые агент загружает по необходимости: ошибки, горутины, тесты, архитектура и ревью кода.

СкиллМинимальный доступ88Звезды репозитория

Коротко о README

Рассказано о причинах появления плагина, порядке работы из четырех шагов и установке для пяти инструментов. Справочные файлы лежат в `skills/go-guidelines/references`.

Бейдж для README

Исходный SKILL.md

---
name: go-guidelines
description: Go best practices for performance, modern syntax, generics, patterns, testing, error handling, and concurrency. Use when writing or reviewing Go code.
---

# Go Guidelines

## Detected Go Version

!`grep -rh "^go " --include="go.mod" . 2>/dev/null | cut -d' ' -f2 | sort | uniq -c | sort -nr | head -1 | xargs | cut -d' ' -f2 | grep . || echo unknown`

## How to Use

DO NOT search for go.mod files or try to detect the version yourself. Use ONLY the version shown above.

**If version detected (not "unknown"):**
- Say: "This project is using Go X.XX, so I'll follow Go best practices and modern syntax up to and including this version. If you'd prefer a different target version, just let me know."
- Do NOT list features, do NOT ask for confirmation

**If version is "unknown":**
- Say: "Could not detect Go version in this repository"
- Use AskUserQuestion: "Which Go version should I target?" with options ... / [1.20] / [1.21] / [1.22] / [1.23] / [1.24] / [1.25] / [1.26] / [1.27] / ...

## Reference Loading

**Read ONLY the reference file(s) relevant to your current task. Do NOT load all files at once.**

When reading reference files, **stop at the detected Go version boundary** — ignore features from newer versions.

| When you are... | Read this reference |
|---|---|
| Using version-specific Go syntax or idioms | [references/modern-syntax.md](references/modern-syntax.md) |
| Optimizing performance, struct layout, escape analysis | [references/performance.md](references/performance.md) |
| Working with goroutines, channels, sync, select, false sharing | [references/concurrency.md](references/concurrency.md) |
| Writing HTTP servers, shutdown, health checks, middleware, interfaces, io.Reader | [references/patterns.md](references/patterns.md) |
| Writing tests, mocks, benchmarks, fuzz tests | [references/testing.md](references/testing.md) |
| Handling errors, wrapping, custom error types | [references/error-handling.md](references/error-handling.md) |
| Working with slices, maps, append, memory leaks | [references/slices-and-maps.md](references/slices-and-maps.md) |
| Using context.Context, values, cancellation, timeouts | [references/context-patterns.md](references/context-patterns.md) |
| Using generics, type parameters, constraints | [references/generics.md](references/generics.md) |

Сообщить о проблеме