go-modern-guidelines
Modern Go Guidelines
Guideline skill that teaches an agent to write modern Go: new language and stdlib idioms scoped to the project version
Low risk
We rate an entry low when it mostly gives the agent instructions and reference material.
Why this level
- The skill is reference guidance and does not change code
- The helper CLI only reads the project version and runs in a local cache
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/modern-go-guidelinesDetects the agents on your machine, checks the risk and pins the version.
Other ways to install
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a claude-code -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .claude/skills
cp -R "$tmp/plugin/skills/use-modern-go" .claude/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a cursor -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .agents/skills
cp -R "$tmp/plugin/skills/use-modern-go" .agents/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a github-copilot -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .github/skills
cp -R "$tmp/plugin/skills/use-modern-go" .github/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a codex -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .agents/skills
cp -R "$tmp/plugin/skills/use-modern-go" .agents/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a gemini-cli -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .agents/skills
cp -R "$tmp/plugin/skills/use-modern-go" .agents/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .devin/skills
cp -R "$tmp/plugin/skills/use-modern-go" .devin/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Formerly Windsurf.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a cline -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .cline/skills
cp -R "$tmp/plugin/skills/use-modern-go" .cline/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a roo -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .roo/skills
cp -R "$tmp/plugin/skills/use-modern-go" .roo/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
A fork of Roo Code, same .roo folders.
Run in a terminal in the project folder
npx skills add jetbrains/go-modern-guidelines --skill use-modern-go -a opencode -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 155dc7c
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .agents/skills
cp -R "$tmp/plugin/skills/use-modern-go" .agents/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .agents/skills
cp -R "$tmp/plugin/skills/use-modern-go" .agents/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/jetbrains/go-modern-guidelines.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /plugin/skills/use-modern-go/
git -C "$tmp" checkout 155dc7ca10da5e1f6c841503086957b1b37f5815
mkdir -p .agents/skills
cp -R "$tmp/plugin/skills/use-modern-go" .agents/skills/use-modern-goCommands for macOS and Linux, on Windows run them in Git Bash.
Install the plugin in Claude Code: /plugin marketplace add JetBrains/go-modern-guidelines, then /plugin install modern-go-guidelines@goland-claude-marketplace. The skill triggers on Go tasks and is invoked explicitly with /modern-go-guidelines:use-modern-go. The Go toolchain must be in PATH.
Other ways from the author
/plugin marketplace add JetBrains/go-modern-guidelines
/plugin install modern-go-guidelines@goland-claude-marketplaceThe skill triggers on Go tasks; invoke it explicitly with /modern-go-guidelines:use-modern-go.
This is third-party code. Review the repository files before installing.
What it does
The skill gives the agent a reference of modern Go idioms and hooks in when code is written or edited. A small CLI detects the Go version from go.mod, go.work or the local toolchain and returns the idioms available for that version: max and min instead of branches, slices.Contains instead of a manual loop, cmp.Or instead of a chain of nil checks, range over an integer and other additions. The guidelines cover features from Go 1.0 through recent releases, including everything the modernize analyzer automates. The CLI installs into a local cache on first run and does not change the project.
Who it is for. For Go developers who want the agent to write code with current language idioms.
Good fit when
- The agent writes or edits Go and produces outdated constructs
- You want code in idioms available for the go.mod version
- You want one reference for new Go features
Not a fit when
- The project is not in Go
- You need a linter or auto-fix rather than an idiom reference
Example request
Before editing this Go file, check the idioms against the guidelines and use modern constructsLimitations
The skill gives guidance; it does not rewrite code automatically. It needs the Go toolchain in PATH: the helper CLI installs via go install on first run into a local cache. Some idioms need recent Go versions; on an older toolchain automatic switching with GOTOOLCHAIN auto helps.
How to disable. Uninstall the plugin via /plugin in Claude Code and optionally clear the guidelines CLI local cache.
Security check
- The skill is reference guidance and does not change code
- The helper CLI only reads the project version and runs in a local cache
README in short
The README describes official JetBrains guidelines that help agents write modern Go. A small CLI detects the project Go version and returns fitting idioms, covering features from Go 1.0 through recent releases. The skill is available for Junie, Claude Code, Codex and Cursor, and for other agents via skills.sh. In Claude Code it installs through /plugin marketplace add and /plugin install and triggers automatically or by command. The CLI installs into a local cache and does not change the project. Apache 2.0 licensed.
SKILL.md
--- name: use-modern-go description: Use the Modern Go Guidelines CLI whenever writing, modifying, fixing, or refactoring Go code. Apply its version-specific guidance to generated changes. --- # 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`
FAQ
Does the skill rewrite code itself?
No, it returns the idioms available for the project version, and the agent applies them while writing and editing.
Where does the Go version come from?
The CLI resolves it from go.mod, go.work, the local toolchain or an explicit override.
Related
A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review
Skills for real engineers by Matt Pocock
Skills For Real Engineers
Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture
GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation
Reference MCP servers
Model Context Protocol servers
Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything