# CLAUDE.md (gwm-rust)
Rust版gwmの開発ガイドライン。
## 必須要件
- **Rust**: 1.74以上
---
## 開発コマンド
```bash
cargo build # ビルド
cargo test # テスト
cargo clippy # リント
cargo fmt # フォーマット
make check # CI相当のチェック
```
## ローカル検証
```bash
cargo build
./target/debug/gwm {command}
```
---
## ディレクトリ構成
```
src/
├── main.rs # エントリポイント
├── cli/ # CLIコマンド定義
├── config/ # 設定管理
├── git/ # Git操作
├── ui/ # TUIコンポーネント
├── hooks/ # フック実行
└── trust/ # 信頼検証
```
---
## 開発ルール
### DO(必須)
- **テストを書く**: 新機能・バグ修正には必ずテストを追加
- **動作確認**: コード変更後はローカルで動作確認
- **UX優先**: ユーザー体験を最優先に設計
- **エラーメッセージ**: 具体的で対処法がわかるメッセージ
- **既存パターン踏襲**: プロジェクト内の既存コードスタイルに従う
### DON'T(禁止)
- **未読のコード変更禁止**: 読んでいないファイルを変更しない
- **過剰な抽象化禁止**: 必要最小限の実装に留める
- **機密情報禁止**: `.env`や認証情報をコミットしない
- **破壊的変更禁止**: 既存のCLIインターフェースを壊さない
---
## コーディング規約
- `cargo clippy`の警告をすべて解消
- `cargo fmt`でフォーマット
- `unwrap()`は避け、適切なエラーハンドリング
- `unsafe`は使用禁止
- `thiserror`/`anyhow`でエラーハンドリング
---
## テスト
```bash
cargo test # 全テスト
cargo test git:: # 特定モジュール
cargo test -- --nocapture # 出力表示
```
---
## トラブルシューティング
| ビルドエラー | `cargo clean && cargo build` |
| クリップボード警告 | `cargo clippy --fix` |
| TUI表示崩れ | `crossterm`のターミナル互換性確認 |
---
## TypeScript版との整合性
1. **機能パリティ**: TypeScript版の機能をRust版にも実装
2. **CLI統一**: コマンド名・オプションは両実装で同一
3. **設定互換**: 同じ`config.toml`形式を使用