| name | shiiman-go:check |
| description | Go プロジェクトの品質を総合チェックする。「Go チェック」「go check」「コード品質チェック」「lint して」「テスト実行」「脆弱性スキャン」「パフォーマンス確認」「コードレビュー」「品質確認」「総合診断」などで起動。テスト・静的解析・脆弱性スキャン・ベンチマーク・コードレビューを並列実行し統合レポートを出力。 |
| allowed-tools | ["Read","Bash","Glob","Grep","Task"] |
| argument-hint | [--help] |
Go Code Quality Checker
Go プロジェクトの品質を総合的にチェックします。
5つのチェックを Task サブエージェントで並列実行し、統合レポートを出力します。
Help
$ARGUMENTS に --help が含まれる場合、以下を表示して終了:
/shiiman-go:check - Go Code Quality Checker
概要:
Go プロジェクトの品質を総合的にチェックします。
使用方法:
/shiiman-go:check [オプション]
オプション:
--help このヘルプを表示
ワークフロー
1. 事前確認
以下を確認:
- Go プロジェクト(go.mod)の存在
- タスクランナー(Makefile / Taskfile.yml)の有無
- Benchmark テスト(
func Benchmark を含むファイル)の有無
2. 並列チェック実行
以下の5つのチェックを Task ツールで並列起動 する。
必ず1つのメッセージで全ての Task を同時に呼び出すこと。
チェック 1: テスト(subagent_type: Bash)
go test -race -cover ./...
タスクランナーに test タスクがあればそちらを優先。
チェック 2: 静的解析(subagent_type: Bash)
golangci-lint run ./...
タスクランナーに lint タスクがあればそちらを優先。
golangci-lint がなければ go vet ./... にフォールバック。
チェック 3: 脆弱性スキャン(subagent_type: Bash)
govulncheck ./...
govulncheck がインストールされていない場合は go install golang.org/x/vuln/cmd/govulncheck@latest を先に実行。
チェック 4: ベンチマーク(subagent_type: Bash)
go test -bench=. -benchmem ./...
Benchmark テストが存在する場合のみ実行。存在しない場合はスキップ。
チェック 5: コードレビュー(subagent_type: general-purpose)
以下の観点で変更ファイルまたはプロジェクト全体をレビュー:
- Effective Go 準拠(命名規則、エラーハンドリング、インターフェース設計)
- Go Code Review Comments 準拠
- goroutine リーク、レースコンディション、デッドロックのリスク
- defer の適切な使用
- パフォーマンス上の懸念(不要なアロケーション、N+1 等)
3. 統合レポート出力
全チェック完了後、以下の形式で結果をまとめて出力:
## Go Check 結果
| チェック項目 | 結果 | 詳細 |
|-------------|------|------|
| テスト | ✅/❌ | カバレッジ率、失敗テスト数 |
| 静的解析 | ✅/⚠️ | 検出された問題数と内訳 |
| 脆弱性 | ✅/⚠️ | 検出された脆弱性数 |
| ベンチマーク | ℹ️/⏭️ | 主要なベンチマーク結果 or スキップ |
| コードレビュー | ✅/⚠️ | 指摘事項数と優先度 |
4. 改善提案
問題が検出された場合、優先度順に改善提案を提示:
- Critical: テスト失敗、脆弱性
- Warning: lint エラー、コードレビュー指摘
- Info: ベンチマーク結果、最適化提案
重要な注意事項
- ✅ 5つのチェックは必ず Task で並列起動する(順番に実行しない)
- ✅ タスクランナーがあればそちらを優先する
- ✅ ベンチマークテストがない場合はスキップする
- ✅ 結果は統合レポートとしてまとめて出力する
- ❌ チェック結果を1つずつ個別に報告しない