go-modern-guidelines

JetBrainsApache-2.0活跃维护

给 AI 编程助手用的 Go 语言编码规范,让自动生成的 Go 代码符合现代写法,减少过时风格和常见错误。

Help AI coding agents write modern Go

暂无版本3,962star +9 / 7 天130fork同步于 2026-11-10 23:40 UTC

怎么上手

由 README 提炼,执行前请确认
/plugin marketplace add JetBrains/go-modern-guidelines
/plugin install modern-go-guidelines@goland-claude-marketplace
硬件要求按 README 说明

README 未说明;仅要求本机安装 Go 工具链并加入 PATH,CLI 目标为 Go 1.25 或更新版本,旧版本需开启 GOTOOLCHAIN=auto。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

给 AI 编码代理的 Go 现代写法指南,让它别再生成过时代码

给 AI 编程助手用的 Go 语言编码规范,让自动生成的 Go 代码符合现代写法,减少过时风格和常见错误。

核心能力

  • 从 go.mod 自动识别项目 Go 版本
  • 按版本上限推荐语言特性与标准库新 API
  • 覆盖 Go 1.0 到 1.27 的实用特性清单
  • 以插件或 skill 形式接入 Junie、Claude Code、Codex、Cursor
  • 首次使用时通过 go install 安装本地 CLI,不改动项目

容易踩的坑

必须先装好 Go 工具链并在 PATH 中,否则插件首次调用时无法通过 go install 安装 CLI;Go 版本低于 1.25 时依赖 GOTOOLCHAIN=auto 自动拉取兼容工具链;各代理的安装命令不同,Claude Code 的插件市场名是 goland-claude-marketplace,Codex 与 Cursor 各自另有市场名。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    official JetBrains project

    Modern Go Guidelines

    This repository contains guidelines for code agents that help them write modern Go code.

    For example, an agent with these guidelines uses max(a, b) instead of an if-else block, slices.Contains instead of a manual loop, cmp.Or(a, b, c) instead of a chain of nil checks. It also knows about recent additions like new(42) to get a pointer to a value and errors.AsType[T](https://github.com/JetBrains/go-modern-guidelines/blob/HEAD/err) for type-safe error matching—both from Go 1.26.

    The guidelines cover the most useful features from Go 1.0 through Go 1.27, including everything targeted by the modernize analyzer. See FEATURES.md for the complete list with detailed descriptions and examples. An agent will:

    • Detect the project's Go version from go.mod
    • Use language features and stdlib additions available up to and including that version
    • Prefer modern idioms over older patterns

    Motivation

    All coding agents tend to generate outdated Go. Two reasons:

    1. Training data lag. Models don't know about features added after their training cutoff. They can't use errors.AsType[T] (Go 1.26) if they've never seen it.

    2. Frequency bias. Even for features the model knows, it often picks older patterns. There's more for i := 0; i < n; i++ in the training data than for i := range n, so that's what comes out.

    These guidelines fix both problems by giving the agent an explicit reference.

    This aligns with the Go team's direction. The modernize analyzer exists to automatically update existing code to use newer idioms (see this talk from the Go team). These guidelines serve the same goal for new code: agents write modern Go from the start, so there's less to fix later.

    Requirements

    The marketplace integrations run a small CLI that is installed on first use with go install. Because of that, the Go toolchain must be installed and available on your PATH.

    The CLI is installed into a local cache (for example ~/.cache/go-modern-guidelines) and never modifies your project. It targets Go 1.25 or newer; on an older Go it still works as long as automatic toolchain switching is enabled (GOTOOLCHAIN=auto, the default), which lets Go fetch a compatible toolchain on first run.

    Instructions

    The guidelines are available for Junie, Claude Code, Codex, and Cursor, and for other agents via skills.sh.

    Junie

    Junie CLI

    Run the following commands inside a Junie CLI session.

    1. Add this repository as a marketplace:
    /extensions marketplace add JetBrains/go-modern-guidelines
    
    1. Install the extension:
    /extensions install modern-go-guidelines
    

    Junie invokes the skill automatically when it is relevant to a Go task.

    Updating

    Update the installed extension from inside a Junie CLI session:

    /extensions update modern-go-guidelines
    

    Claude Code

    Installation

    Run the following commands inside a Claude Code session.

    1. Add this repository as a marketplace:
    /plugin marketplace add JetBrains/go-modern-guidelines
    
    1. Install the plugin:
    /plugin install modern-go-guidelines@goland-claude-marketplace
    
    Usage

    Claude Code invokes the skill automatically when it is relevant to a Go task.

    To invoke it explicitly:

    /modern-go-guidelines:use-modern-go
    
    Updating

    Claude Code can update the marketplace and installed plugin automatically at startup. Automatic updates are disabled by default for third-party marketplaces, so enable them once:

    1. Run /plugin.
    2. Open Marketplaces and select goland-claude-marketplace.
    3. Select Enable auto-update.

    When Claude Code reports that the plugin was updated, apply the new version to the current session with:

    /reload-plugins
    

    To update it manually instead, run these commands in a terminal:

    claude plugin marketplace update goland-claude-marketplace
    claude plugin update modern-go-guidelines@goland-claude-marketplace
    

    Codex

    Installation

    Run the following commands in a terminal.

    1. Add this repository as a marketplace:
    codex plugin marketplace add JetBrains/go-modern-guidelines
    
    1. Install the plugin:
    codex plugin add modern-go-guidelines@goland-codex-marketplace
    
    Updating

    Refresh the marketplace and reinstall the plugin so Codex replaces its cached copy:

    codex plugin marketplace upgrade goland-codex-marketplace
    codex plugin remove modern-go-guidelines@goland-codex-marketplace
    codex plugin add modern-go-guidelines@goland-codex-marketplace
    

    Cursor

    For convenience, the guidelines are distributed as a Cursor plugin.

    Installation
    1. Add this repository as a marketplace by running the following command in a terminal:
    cursor-agent plugin marketplace add https://github.com/JetBrains/go-modern-guidelines
    
    1. Install the plugin with the /plugins command inside a Cursor session.
    Updating

    Refresh the marketplace from Git and reopen Cursor so it can pick up the new plugin version:

    cursor-agent plugin marketplace update goland-cursor-marketplace
    

    If the installed plugin is still on the previous version, reinstall it with the /plugins command. Cursor does not currently provide a non-interactive CLI command for updating an installed plugin.

    Other Agents (via skills.sh)

    The same skill package works across other agents such as OpenCode. Install it with:

    npx skills add JetBrains/go-modern-guidelines
    

    (--skill use-modern-go installs only this skill.)

    Updating

    Update the project-installed skill with:

    npx skills update use-modern-go -p -y
    

    For a globally installed skill, replace -p with -g.

    Contributing

    Contributions are very welcome. Please read CONTRIBUTING.md before proposing a change.

    Local development

    To try changes to the CLI in your agent, build this checkout into the tool's cache:

    make dev-install
    

    Then set GO_MODERN_GUIDELINES_DEV=1 in the environment your agent runs in. With it set, any agent using the plugin runs your local build instead of the released version, the same way across Claude Code, Codex, and Cursor. Export it before launching the agent so the agent process inherits it:

    export GO_MODERN_GUIDELINES_DEV=1
    

    After editing the CLI, run make dev-install again to rebuild; the next call picks it up. To go back to the released version, unset the variable (or run make dev-uninstall to remove the build):

    make dev-uninstall
    

    This requires the Go toolchain. The dev build is stored in the tool's cache directory ($XDG_CACHE_HOME/go-modern-guidelines or ~/.cache/go-modern-guidelines).

    The build is driven by scripts/dev-install.sh, which is intentionally separate from the agent-facing wrapper so an agent can never trigger a build. Without make (for example on Windows) you can run it directly:

    sh scripts/dev-install.sh install       # or: uninstall
    pwsh scripts/dev-install.ps1 install    # PowerShell equivalent