Use Modern Go

jetbrains/go-modern-guidelines/plugin/skills/use-modern-go

by jetbrains155dc7ca10daNo license3.7K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 4 weeks ago

Use the Modern Go Guidelines CLI whenever writing, modifying, fixing, or refactoring Go code. Apply its version-specific guidance to generated changes.

Includes scriptsSoftware Development
AI-generated overview

Runs a Modern Go Guidelines CLI to surface version-specific idiomatic Go guidance while editing Go code.

What it does
This skill wraps a Modern Go Guidelines CLI that is installed into a local cache on first use. It exposes a list subcommand that returns applicable guidelines for a target Go version, resolved from go.mod, go.work, the local toolchain, or an explicit override, and an explain subcommand that gives detailed explanations and examples for specific guideline IDs. The agent is directed to read the full list output and apply returned guidelines to the Go code being written or refactored. It ships shell and PowerShell wrapper scripts plus a VERSION file.
When to use it
Use it when writing, modifying, fixing, or refactoring Go code and you want guidance on modern idioms that may postdate the model's knowledge cutoff. It is also relevant when you need to check which guidelines apply to a specific Go file or version before making changes.
Requirements
Runs on Linux, macOS, or Windows with a shell or PowerShell. On first use the wrapper installs the Modern Go Guidelines CLI into a local cache directory, which implies network access. It ships executable scripts (run-tool.sh, run-tool.ps1) and a VERSION file. A Go project with go.mod, go.work, or a local Go toolchain helps resolve the target version, though an explicit version can be passed.

Modern Go Guidelines CLI

Always write modern, idiomatic Go code. Use the Modern Go Guidelines CLI as the source of truth for modern Go idioms that may be newer than your knowledge cutoff.

Command:

  • Linux or macOS: sh "<skill-dir>/scripts/run-tool.sh"
  • Windows PowerShell: & '<skill-dir>\scripts\run-tool.ps1'

First run and approvals:

On first use, the wrapper installs the Modern Go Guidelines CLI in a local cache directory.

Subcommands:

  • list
  • explain

Before editing Go code:

  1. Call the wrapper's list subcommand for the relevant Go file.

    Prefer passing the file you are about to edit:

    sh
    sh "<skill-dir>/scripts/run-tool.sh" list --file-path path/to/file.go

    On Windows, use the PowerShell wrapper with the same arguments.

    The CLI resolves the applicable Go version from go.mod, go.work, the local Go toolchain, or an explicit override.

  2. If the target Go version is already known, you may pass it directly:

    sh
    sh "<skill-dir>/scripts/run-tool.sh" list --go-version 1.24
  3. Read the complete list output before deciding which guidelines apply.

    The list output is ordered newest first. Read the full output because older supported guidelines may still apply.

    Do not pipe the output through head, tail, grep, sed, or any other truncating/filtering command. Important guidelines may otherwise be missed.

  4. Treat returned guidelines as authoritative for modern Go style choices in code you are editing.

    If a guideline applies, follow it even when nearby code or repository convention uses an older pattern. Skip it only when it would not compile, would change behavior, or clearly does not match the edited code. Before skipping a returned guideline that seems relevant, call the wrapper's explain subcommand for that guideline ID.

Call explain only when a specific guideline may apply and you need the detailed explanation or examples. Request only the guideline IDs you intend to evaluate or apply:

sh
sh "<skill-dir>/scripts/run-tool.sh" explain sync_waitgroup_go

Multiple guideline IDs may be requested as positional arguments:

sh
sh "<skill-dir>/scripts/run-tool.sh" explain atomic_types errors_as_type

Do not call explain without guideline IDs. Use list first to discover the short guideline list for the target Go version, then call explain for the specific returned IDs that need more context.

Source and attribution

Source:jetbrains/go-modern-guidelinesinplugin/skills/use-modern-goat commit155dc7c

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal