テンプレート一覧に戻る
Go CLI
Go + cobra のCLIツール開発向けCLAUDE.md。高速でクロスプラットフォームなCLI開発に最適です。
中級goclicobratui
CLAUDE.md
# プロジェクト名
Go で構築されたCLIツール。
## 技術スタック
- **言語**: Go 1.23+
- **CLIフレームワーク**: cobra + viper
- **出力**: lipgloss / bubbletea (TUI)
- **ビルド**: GoReleaser
- **テスト**: testing + testify
## コマンド
| コマンド | 用途 |
|---------|------|
| `go run ./cmd/mycli` | 直接実行 |
| `go test ./...` | テスト実行 |
| `go vet ./...` | 静的解析 |
| `goreleaser release --snapshot` | スナップショットリリース |
| `go install ./cmd/mycli` | ローカルインストール |
## ディレクトリ構造
| パス | 役割 |
|-----|------|
| `cmd/mycli/main.go` | エントリーポイント |
| `internal/cmd/` | cobraコマンド定義 |
| `internal/lib/` | コアロジック |
| `internal/config/` | 設定管理(viper) |
| `.goreleaser.yaml` | GoReleaser設定 |
## コーディング規約
- Effective Go に従う
- cobraのRunEでエラーを返す(os.Exitは最上位のみ)
- viperで設定ファイル + 環境変数 + フラグを統合
- シェル補完を自動生成
- `--output` フラグでJSON/テーブル/プレーン出力切替
- context.Contextで処理のキャンセルを伝播
## Git規約
- ブランチ: `feature/`, `fix/`, `chore/`
- コミットメッセージ: Conventional Commits形式