# Claude Code 作業ガイドライン

このドキュメントは、Claude Codeと協業する際のガイドラインを定義します。

## Steeringドキュメントの作成

各作業を開始する前に、**steeringドキュメント**を作成してください。

### Steeringドキュメントとは

作業の方向性や目標を明確にするためのドキュメントです。作業を始める前に以下の要素を整理し、文書化します。

### 必須項目

1. **目的・背景**
   - なぜこの作業が必要なのか
   - 解決しようとしている問題は何か

2. **ゴール**
   - 作業完了時に達成されるべき状態
   - 成功の基準

3. **アプローチ**
   - 採用する技術的アプローチ
   - 主要な実装方針

4. **スコープ**
   - 何を含むか
   - 何を含まないか（境界の明確化）

5. **影響範囲**
   - 変更が影響するファイルやコンポーネント
   - 他の機能への影響

### ドキュメント配置

- プロジェクトルートまたは適切なディレクトリに配置
- ファイル名: `docs/steering/YYYYMMDD_<作業名>.md`（例：`docs/steering/20260208_testcontainers_implementation.md`）

### 例

```markdown
# Steering: テストコンテナの実装

## 目的・背景
統合テストで外部依存を管理するため、テストコンテナパターンを導入する。

## ゴール
- Dockerコンテナを使用した統合テスト環境の構築
- テストの独立性と再現性の確保

## アプローチ
- testcontainersライブラリを使用
- 各テストケースで独立したコンテナを起動

## スコープ
- 含む: データベース、メッセージキュー用のコンテナ設定
- 含まない: 本番環境のDocker設定

## 影響範囲
- tests/ ディレクトリ配下のテストファイル
- CI/CD設定ファイル
```

## 作業完了時のドキュメント作成

Git Commit前の作業完了後は、**完了ドキュメント**を作成してください。

### 完了ドキュメントとは

実装した内容、行った変更、今後の課題などを記録するドキュメントです。ナレッジの蓄積と、後から振り返る際の参考資料となります。

### 必須項目

1. **実装内容**
   - 何を実装したか
   - 主要な変更点

2. **技術的な決定事項**
   - 採用した技術やライブラリ
   - 設計上の重要な判断とその理由

3. **変更ファイル一覧**
   - 追加・変更・削除したファイル
   - 各ファイルの役割

4. **テスト**
   - 実施したテストの種類
   - テストカバレッジ
   - 動作確認方法

5. **今後の課題・改善点**
   - 残されたTODO
   - 将来的な改善案
   - 既知の制限事項

6. **参考資料**
   - 参照したドキュメント
   - 関連するIssueやPR

### ドキュメント配置

- プロジェクトルートまたは適切なディレクトリに配置
- ファイル名: `docs/completed/YYYYMMDD_<作業名>.md`（例：`docs/completed/20260208_testcontainers_implementation.md`）

### 例

```markdown
# 完了報告: テストコンテナの実装

## 実装内容
- testcontainersライブラリを導入
- PostgreSQLとRedis用のテストコンテナを実装
- 統合テストを20件追加

## 技術的な決定事項
- testcontainers-moonbit v1.0.0を採用
  - 理由: MoonBit公式サポート、軽量
- 各テストで独立したコンテナを起動する方式
  - 理由: テスト間の独立性を確保

## 変更ファイル一覧
- 追加:
  - `tests/containers/postgres.mbt`: PostgreSQLコンテナ設定
  - `tests/containers/redis.mbt`: Redisコンテナ設定
  - `tests/integration/db_test.mbt`: DB統合テスト
- 変更:
  - `moon.mod.json`: testcontainers依存追加

## テスト
- 統合テスト20件追加（全てパス）
- カバレッジ: 85%
- 動作確認: `moon test` で全テスト実行可能

## 今後の課題・改善点
- [ ] コンテナ起動時間の最適化（現在約5秒）
- [ ] MongoDB用コンテナの追加
- [ ] CI/CD環境でのDocker in Docker設定

## 参考資料
- [testcontainers公式ドキュメント](https://testcontainers.com)
- Issue #123: テスト環境の改善
```

## その他のガイドライン

- 作業完了後にテストが全て通る状態ならコミットする
- コミットメッセージは変更の意図を明確に記載
- 大きな変更は小さな単位に分割
- テストを含めて実装
- テスト実行は`moon test`コマンドを使用
- 動作検証にはdocker-compose.ymlで提供される環境を使用する

# MoonBit Project Agents.md Guide

see @AGENTS.md Guide
