# TDD+DDD実装チェックリスト

## 🔴 実装前チェック

- [ ] **ドメインモデリング完了**
  - [ ] エンティティ・値オブジェクト・ドメインサービスを特定
  - [ ] ビジネスルールをドメイン層に配置する計画を策定
  - [ ] リポジトリインターフェースをドメイン層で設計

- [ ] **失敗するテストを先に作成**
  - [ ] テストファイル: `tests/test_<機能名>.py` を作成
  - [ ] RED段階であることを確認（`pytest`で失敗）
  - [ ] テストが要求仕様を明確に表現

## 🟢 実装中チェック

- [ ] **最小実装で全テスト通過**
  - [ ] ドメインエンティティにビジネスロジック実装
  - [ ] 技術的関心事はリポジトリ経由
  - [ ] GREEN段階を確認（`pytest`で成功）

## 🔵 リファクタリングチェック

- [ ] **全テスト通過を維持しながらリファクタリング**
  - [ ] コード品質向上（可読性・保守性）
  - [ ] DDD原則の遵守確認
  - [ ] 依存関係の方向性確認

## ✅ コミット前チェック

- [ ] **TDD+DDD準拠チェック実行**
  ```bash
  python scripts/tools/check_tdd_ddd_compliance.py
  ```

- [ ] **pre-commitフック通過**
  ```bash
  git commit -m "feat: <機能名>"  # --no-verifyは使用禁止
  ```

- [ ] **カバレッジ確認**
  ```bash
  pytest --cov=. --cov-fail-under=60
  ```

## 🚫 禁止事項

- ❌ 実装を先に書いてからテストを後付け
- ❌ ドメイン層でのファイルI/O、DB接続
- ❌ `--no-verify`でのコミット
- ❌ テストなしのリファクタリング
- ❌ `_refactored`サフィックスのファイル作成
