📅 2026-08-30 · 🏷️ Go语言 · AI编码 · 开发规范
项目概览
GitHub: JetBrains/go-modern-guidelines · 语言: Go · ⭐ 2.8k+ · JetBrains 官方
AI 编码代理的一大毛病:写 Go 代码还在用十年前的老写法——if-else 判空、手写循环、不会用新标准库函数。JetBrains 这个官方项目,就是给 AI 代理喂"现代 Go 编码规范",让它用上从 Go 1.0 到 1.27 最有用的特性(含 modernize 分析器覆盖的全部内容)。
装上之后,代理会:用 max(a, b) 而不是 if-else、用 slices.Contains 而不是手写循环、用 cmp.Or(a, b, c) 而不是一长串 nil 判断;甚至知道 Go 1.26 的新东西,比如 new(42) 取指针、errors.AsType[T](err) 做类型安全错误匹配。并且它自动检测 go.mod 里的 Go 版本,只教你当前版本能用的语法。
go install 方式安装 CLI 需要)GOTOOLCHAIN=auto 可在旧版本上自动拉取)CLI 只装进本地缓存(~/.cache/go-modern-guidelines),从不修改你的项目。
/plugin marketplace add JetBrains/go-modern-guidelines
/plugin install modern-go-guidelines@goland-claude-marketplace
涉及 Go 任务时会自动触发该技能。
codex plugin marketplace add JetBrains/go-modern-guidelines
codex plugin add modern-go-guidelines@goland-codex-marketplace
/extensions marketplace add JetBrains/go-modern-guidelines
/extensions install modern-go-guidelines
cursor-agent plugin marketplace add https://github.com/JetBrains/go-modern-guidelines
# 再在 Cursor 会话里用 /plugins 安装
npx skills add JetBrains/go-modern-guidelines
# 只装技能本体:
npx skills add JetBrains/go-modern-guidelines --skill use-modern-go
| 场景 | 老写法 | 现代写法 |
|---|---|---|
| 取较大值 | if a > b { return a }... | max(a, b) |
| 切片含某元素 | for 循环遍历 | slices.Contains(s, x) |
| 取第一个非空值 | 嵌套 nil 判断 | cmp.Or(a, b, c) |
| 取指针 | 临时变量 + & | new(42)(Go 1.26) |
| 类型安全错误匹配 | errors.As + 断言 | errors.AsType[T](err) |
make dev-install # 构建到工具缓存
export GO_MODERN_GUIDELINES_DEV=1 # 让代理用你的本地构建
make dev-uninstall # 恢复发布版
这本质上是"给 AI 代理注入领域规范"的典型案例,和Ponytail极简编码插件的思路一脉相承。想控制 AI 代理的代码风格,还可以看Claude Code会话管理教程。
GitHub: JetBrains/go-modern-guidelines · 语言: Go · ⭐ 2.8k+ · JetBrains 官方
Go 团队:统一让 AI 助手的产出符合团队现代风格