go-skills-router について
go-skills-routerは、Goの作業に取り組む開発者向けのスキル一覧です。質問に応じた主スキルと同時に読み込む関連スキルを示し、重複する領域や複合タスクの選び方も説明します。
主な機能
- 01Goタスクに主スキルと関連スキルを割り当て
- 02重複するスキルの担当範囲を説明
- 03複合タスク向けのスキル構成を提示
- 04質問とツール、スキルの対応を提示
- 05設定と確認の指針を掲載
活用シーン
- 01Goコードレビュー用のスキルを選定
- 02クラッシュや性能問題の診断を開始
- 03GoサービスやCLI開発のスキルを計画
- 04Goスキルを自動読み込みする設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ eduardo-sl/ go-agent-skills --skill go-skills-routerインストール後、Claude Code で/go-skills-routerを入力して読み込まれたか確認します。
詳細
Go スキルルーター
このリポジトリでは、35 個の Go スキルを公開しています。各スキルのトリガーは必然的に重複します。「処理が遅い」という場合、パフォーマンス、並行処理、データベース、またはリークが原因かもしれません。以下の表を使って担当するスキルを選び、1 つずつ見つけていくのではなく、同じタイミングで関連するスキルも読み込んでください。
これは索引です。ここに記載されている各スキルはそれぞれ単独で利用でき、このスキルを読まなくても内容を理解できます。
ルーティング表
| タスク | 主なスキル | 併せて読み込む |
|---|---|---|
| コードのフォーマット、インポートの並べ替え、宣言と初期化 | go-coding-standards | go-documentation |
| パッケージ、型、関数、レシーバー、エラーの命名 | go-naming | go-coding-standards |
| 差分または PR のレビュー | go-code-review | レビュー対象の領域を担当するスキル |
| エラーの返却、ラップ、検査 | go-error-handling | nil が多いコードでは go-defensive-coding |
| デッドラインの受け渡し、処理のキャンセル | go-context | ゴルーチンが関わる場合は go-concurrency-review |
| 新しい Go の機能の採用 | go-modernize | CI のツールチェーンを更新するには go-ci |
| スライス、マップ、セット、事前割り当て | go-data-structures | go-performance-review |
| godoc、サンプル、非推奨化、README、CHANGELOG の作成 | go-documentation | go-coding-standards |
| パニックや気付かれないデータ破損への対策 | go-defensive-coding | go-error-handling |
| パッケージ構成と依存関係の方向のレビュー | go-architecture-review | go-interface-design |
| 新しいプロジェクトまたはサービスの開始 | go-project-layout | go-dependency-injection、go-ci |
| インターフェースまたは型の設計 | go-interface-design | go-design-patterns |
| 既知のパターンの適用 | go-design-patterns | go-interface-design |
| 依存関係の接続、グローバル変数の削除 | go-dependency-injection | go-project-layout |
| HTTP API の構築 | go-api-design | go-openapi、go-observability |
| OpenAPI 仕様に基づく作業 | go-openapi | go-api-design、go-test-quality |
| GraphQL API の構築 | go-graphql | go-database、go-api-design |
| gRPC サービスの構築 | go-grpc | go-test-quality、go-observability |
| CLI の構築 | go-cli | go-project-layout、go-binary-size |
| データベースへのクエリ、トランザクションの管理 | go-database | go-error-handling、go-security-audit |
| ゴルーチン、チャネル、同期処理の記述 | go-concurrency-review | go-context、go-test-quality |
| 脆弱性の監査 | go-security-audit | go-dependency-audit、go-defensive-coding |
| アロケーションの削減、ホットパスの最適化 | go-performance-review | go-data-structures |
| バイナリまたはイメージのサイズ縮小 | go-binary-size | go-ci |
| リリースの作成:GoReleaser、署名、SBOM、来歴情報 | go-build-release | go-ci、go-binary-size |
| ログ、メトリクス、トレースの追加 | go-observability | go-context |
| パニック、リーク、デッドロックのデバッグ | go-troubleshooting | go-concurrency-review、go-performance-review |
| テストの作成または改善 | go-test-quality | go-test-table-driven |
| テストマトリックスの構成 | go-test-table-driven | go-test-quality |
| go.mod の監査、CVE の確認 | go-dependency-audit | go-security-audit |
| CI、リンティング、カバレッジのゲート設定 | go-ci | go-dependency-audit |
| 既存コードの安全な再構成 | go-refactoring | go-semantic-tools、および変更後の構成を担当するスキル |
| 呼び出し元や実装者の特定、名前変更 | go-semantic-tools | go-refactoring |
| コミットメッセージの作成 | git-commit | — |
重複するスキルの境界
コード内のキーワードに一致するものではなく、質問の内容を担当するスキルを読み込みます。
「遅いです。」
go-performance-review— コードが過剰にメモリを割り当てたり、コピーしたりしています。ベンチマーク、pprof、最適化パターンを担当します。go-concurrency-review— コードがロックで競合しているか、並行して実行できる処理を逐次実行しています。go-database— クエリに問題があります。インデックスの欠如、N+1、コネクションプールの枯渇などです。go-troubleshooting— どれが原因かまだ分かりません。まずここから始めて原因を特定し、その後、担当するスキルに引き継ぎます。
「クラッシュしました。」
go-troubleshooting— パニック、デッドロック、リークがすでに発生しています。診断、プロファイル、delve を担当します。go-defensive-coding— 予防を担当します。nil による問題、エイリアシング、オーバーフローなど、次のクラッシュを防ぐ構造を扱います。go-concurrency-review— データ競合またはゴルーチンのライフサイクルに関するバグを扱います。
「これは安全ですか?」
go-security-audit— 外部からの脅威を扱います。インジェクション、認証、シークレット、TLS などです。go-dependency-audit— インポートしているモジュールに既知の CVE があるかを扱います。go-defensive-coding— 攻撃ではない、内部的な正確性のバグを扱います。
「どのように構成すればよいですか?」
go-architecture-review— 既存のコードベースの構造を扱います。go-project-layout— 新しいコードベースの構造を扱います。go-interface-design— 1 つの型または契約の構造を扱います。go-refactoring— 現在の構造から目標の構造へ移行するプロセスを扱います。目標を担当する上記のスキルと併せて読み込みます。
「どのように公開すればよいですか?」
go-api-design— HTTP/REST ハンドラー、ルーティング、ミドルウェア、冪等性、ヘルスチェック、シャットダウンを扱います。go-openapi— 契約が仕様で定義され、そこからコードが生成される場合に使います。go-graphql— クライアントがレスポンスの構造を選ぶ場合に使います。go-grpc— protobuf 契約、インターセプター、ストリーミングを扱います。
「テスト。」
go-test-quality— 何をテストするか、どのように分離するか、何をモックするか、synctest、goleak、ベンチマークを扱います。go-test-table-driven— テーブル形式のパターンを専門に扱います。どのような場合に役立つか、ケース構造体をどのように設計するか、いつ使うのをやめるべきかを扱います。
「スタイル。」
go-coding-standards— コードが従うべきルールを扱います。go-naming— パッケージ、型、関数、レシーバー、エラーの名前を扱います。go-code-review— 重要度を付けて、他の人の変更にルールを適用します。go-modernize— 言語の進化に伴って変更されたルールを扱います。go-ci— ルールを機械的に適用する方法を扱います。
「リリースしましょう。」
go-ci— ビルド、lint、テスト、スキャンなど、すべての変更をチェックするパイプラインを扱います。go-build-release— タグから署名済みの再現可能なアーティファクトを作成します。go-binary-size— それらのアーティファクトを小さくします。
質問に答えるツール
| 質問 | ツール | スキル |
|---|---|---|
| このビルドで、このシンボルはどこで使用/実装されていますか? | gopls(MCP サーバーまたは CLI) | go-semantic-tools |
| 使用しているバージョンにおける依存関係の API は何ですか? | go doc pkg Symbol、gopls go_package_api | go-semantic-tools |
| モジュールの別のバージョンはどのようなものですか? | go doc [email protected](Go 1.27 以降)、go list -m -versions | go-dependency-audit |
| 既知の脆弱性のうち、コードから実際に到達可能なものはどれですか? | govulncheck ./... | go-dependency-audit |
| どのパッケージがどのパッケージをインポートしていますか? | go list -deps、go mod graph、go mod why | go-semantic-tools |
複数の関心事にまたがるタスク
実際のタスクでは、通常、3つのスキルが必要になります。順番に読み込むのではなく、最初にまとめて読み込んでください。
| リクエスト | 読み込むスキル |
|---|---|
| 「テスト付きのgRPCサービスを構築する」 | go-grpc + go-test-quality + go-error-handling |
| 「このエンドポイントは高負荷時に遅い」 | go-troubleshooting + go-performance-review + go-database |
| 「リリース前にこのサービスのセキュリティを強化する」 | go-security-audit + go-dependency-audit + go-defensive-coding + go-ci |
| 「このモノリスを分割する」 | go-architecture-review + go-refactoring + go-semantic-tools |
| 「新しいCLIのひな形を作成する」 | go-project-layout + go-cli + go-ci + go-binary-size |
| 「これを現在のGoリリースに移行する」 | go-modernize + go-test-quality + go-ci |
これらのスキルを使うようにプロジェクトを設定する
プロジェクトでこれらのスキルを自動的に読み込むように求められた場合:
-
プロジェクトに既存のエージェント設定ファイルを探します:
CLAUDE.md、AGENTS.md、GEMINI.md、.github/copilot-instructions.md、.cursor/rules/。 -
go-skills-routerへの参照がすでにあるファイルはスキップします。 -
各ファイルにこのブロックを提案し、差分を表示して、開発者の承認後にのみ書き込みます:
## Go skills Before any Go coding, review, debugging or setup task, consult the `go-skills-router` skill and load the skills it names for the task. -
チームがルーティングに関係なく、すべてのタスクで一部のスキル(たとえば
go-error-handlingやgo-security-audit)を使いたい場合は、その理由とともにブロックの下に「常に読み込む」として列挙します。
全カタログ
| カテゴリ | スキル |
|---|---|
| コード品質 | go-coding-standards go-naming go-code-review go-error-handling go-context go-modernize go-data-structures go-documentation |
| アーキテクチャ | go-architecture-review go-project-layout go-interface-design go-api-design go-openapi go-graphql go-grpc go-design-patterns go-dependency-injection go-cli |
| データ | go-database |
| 安全性とパフォーマンス | go-concurrency-review go-security-audit go-defensive-coding go-performance-review go-observability go-troubleshooting |
| テスト | go-test-quality go-test-table-driven |
| ワークフロー | go-dependency-audit go-ci go-refactoring go-semantic-tools go-binary-size go-build-release git-commit go-skills-router |
検証チェックリスト
- 主なスキルは、コード内のキーワードではなく、質問の内容に合致している
- 副次的なスキルは、1つずつではなく、同じタイミングで読み込まれている
- 診断タスクでは、最適化スキルより先に
go-troubleshootingが実行されている - 構造変更タスクでは、
go-refactoringが目標とする構造を担当するスキルと組み合わされている - 該当するスキルが1つだけの場合は、ルーティングせずに直接読み込まれている
- プロジェクト設定への書き込みは、開発者が差分を承認した後にのみ行われている