テンプレート一覧に戻る

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形式

関連ガイド

検索

ガイドやテンプレートを検索...