JetBrains/go-modern-guidelines
Help AI coding agents write modern Go
JetBrains / go-modern-guidelines – 速報
何であるか – 小さなオープンソースのルールセット(CLIプラグインとして提供)で、コード生成エージェント(Junie、Claude Code、Codex、Cursorなど)が最新のGoを書く方法を学ばせるものです。Go 1.0からGo 1.27までに導入されたイディオムや標準ライブラリの追加をエンコードしており、エージェントが最新で最も簡潔なパターンを選択できるようにします。従来のコードに後戻りすることなく、自動的に最適な選択が可能になります。
なぜ重要か – 大規模言語モデルは、訓練データが古いバージョンで止まっているため、最新の言語機能を含まないGoコードを生成しがちです。これにより、冗長または古くなったコードが生成され、後で手動で「最新化」する作業が必要になります。JetBrainsのガイドラインは、エージェントに明示的かつバージョンに配慮した参照を提供し、この遅延を減らし、生成後の修正作業量を削減します。
主な機能
| 機能 | 機能の内容 |
|---|---|
| バージョンに配慮した提案 | プロジェクトの go.mod を読み取り、許可されている言語バージョンを確認し、そのバージョンに存在する機能のみを提案します。 |
| 最新のイディオムライブラリ | max(a,b)、slices.Contains、cmp.Or、new(42)、errors.AsType[T] など、具体的な例付きでパターンをエンコード(FEATURES.md を参照)。 |
| エージェント非依存のパッケージング | Junie、Claude Code、Codex、Cursor用のマーケットプレイス拡張として、および汎用の skills.sh パッケージとして配布され、サポートされている任意のAIコーディングアシスタントがロード可能です。 |
| 影響ゼロのCLI | ユーザーごとのキャッシュに小さなヘルパー(go install …)をインストール;ターゲットプロジェクトのファイルを一切変更しません。 |
| ツールチェーン対応 | Go 1.25以降で動作;古いインストールでは GOTOOLCHAIN=auto で互換性のあるツールチェーンを自動ダウンロード。 |
| ローカル開発モード | make dev-install で、GO_MODERN_GUIDELINES_DEV=1 を設定するとエージェントが認識するカスタムCLIをビルド可能。変更のテストが容易です。 |
どのユーザーに推奨されるか?
- 生成されるGoコードの品質を向上させたいAIコーディングアシスタント。
- Junie、Claude Code、Codex、Cursorなどのエージェントに依存し、出力が最新のGoベストプラクティスに従っていることを望む開発者。
- 複数のAIプラットフォームで「modern-go」スキルを配布したいツールメンテナ。
インストールと有効化(概要)
- エージェントのマーケットプレイスにリポジトリを追加(エージェントごとにコマンドが異なります – READMEを参照)。
- エージェントのCLI経由で
modern-go-guidelinesプラグイン/拡張をインストール(/extensions install modern-go-guidelines、codex plugin add …など)。 - エージェントはGoタスクが検出されると自動的にスキルを呼び出します。
- 手動で使用するには明示的なコマンドを実行(例:Claude Codeでは
/modern-go-guidelines:use-modern-go)。
更新方法
各エージェントは独自の更新フロー(CLIコマンド、マーケットプレイスUI、再インストール)を提供しています。READMEにはJunie、Claude Code、Codex、Cursor、および汎用の skills.sh ツール用の正確なコマンドが記載されています。
コントリビューション
本プロジェクトは貢献を歓迎しています。ガイドラインは CONTRIBUTING.md を参照し、make dev-install を使ってローカルで変更をテストしてください。開発ワークフローはエージェント側のラッパーから意図的に分離されており、通常の使用中に誤ってビルドされるのを防いでいます。
まとめ
JetBrains/go-modern-guidelinesは、軽量でバージョンに配慮した「チートシート」をプラグインとしてパッケージ化したもので、AIコード生成エージェントが即座に最新でイディオムに沿ったGoコードを出力できるようにし、生成後のリファクタリングを大幅に削減します。
これを取り上げた記事
関連
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト
- Dispatch