# ai.bot ドキュメント

ai.botプロジェクトの包括的なドキュメント集です。

## ドキュメント一覧

### 開発者向け

1. **[開発ガイド](./development-guide.md)**
   - プロジェクト概要とアーキテクチャ
   - 開発環境のセットアップ
   - 開発ワークフローとベストプラクティス
   - 新機能追加の手順

2. **[HTTPクライアントAPI](./http-client-api.md)**
   - HttpClientモジュールの完全なAPIリファレンス
   - 使用例とサンプルコード
   - エラーハンドリングのベストプラクティス

### 保守・運用向け

3. **[移行ガイド](./migration-guide.md)**
   - パッケージ名・CLI名の変更詳細
   - 段階的移行手順
   - 後方互換性の説明
   - トラブルシューティング

4. **[リファクタリングサマリー](./refactoring-summary.md)**
   - HTTPクライアント共通化の詳細
   - エラーハンドリング改善の記録
   - 対象ファイル一覧とBefore/After

## クイックスタート

### 1. 基本セットアップ
```bash
# 依存関係インストール
cargo install cargo-make

# プロジェクトビルド
cargo build

# テスト実行
cargo test
```

### 2. CLI使用方法
```bash
# 新しいコマンド（推奨）
./target/debug/aibot --help

# 旧コマンド（互換性）
./target/debug/ai --help
```

### 3. 設定ディレクトリ
- **新**: `~/.config/syui/ai/bot/`
- **旧**: `~/.config/ai/` (自動移行対応)

## 主要な変更履歴

### 2025年6月6日 - 大規模リファクタリング

#### HTTPクライアント共通化
- 24個のファイルをHttpClientモジュールで統合
- コード重複を大幅削減
- エラーハンドリングを改善（`.unwrap()` → `match`）

#### 命名規則統一
- パッケージ名: `ai` → `aibot`
- CLI名: `ai` → `aibot`（`ai`は互換性維持）
- 設定ディレクトリ: `~/.config/ai/` → `~/.config/syui/ai/bot/`

#### テストインフラ構築
- ユニットテストの追加
- cargo-makeによるタスク管理
- CI/CD対応の準備

## アーキテクチャ概要

```
ai.bot/
├── src/
│   ├── main.rs           # メインCLI (aibot)
│   ├── alias.rs          # 互換性CLI (ai)
│   ├── http_client.rs    # 統合HTTPクライアント
│   ├── data.rs           # 設定・データ管理
│   ├── game/             # ゲーム機能
│   └── tests/            # テストスイート
├── docs/                 # ドキュメント
├── scripts/              # セットアップスクリプト
└── ~/.config/syui/ai/bot/ # 設定ディレクトリ
    ├── scpt/             # コマンドスクリプト
    └── txt/              # ログファイル
```

## サポート・問い合わせ

### 開発関連
- 新機能追加: [開発ガイド](./development-guide.md)を参照
- API使用方法: [HTTPクライアントAPI](./http-client-api.md)を参照

### 移行・運用関連
- 移行作業: [移行ガイド](./migration-guide.md)を参照
- トラブル: 各ドキュメントのトラブルシューティング章を参照

### 履歴・詳細
- 実装詳細: [リファクタリングサマリー](./refactoring-summary.md)を参照

## 貢献ガイドライン

1. **コードスタイル**: `cargo fmt`でフォーマット必須
2. **テスト**: 新機能には対応するテストを追加
3. **エラーハンドリング**: `.unwrap()`の使用禁止
4. **ドキュメント**: 重要な変更は対応ドキュメントも更新

詳細は[開発ガイド](./development-guide.md)の「コントリビューション」章を参照してください。