---
name: review-docs
description: 設計書に記載された要件を理解し、実装に必要な情報を抽出します。機能名やコンポーネント名を指定すると、関連する設計書を横断的に参照してMVP版の仕様、実装方針、チェックリストを提供します。
---

# Review Docs Skill

設計書を参照し、実装に必要な情報を抽出するスキル。

## 使い方

```
/review-docs <機能名またはコンポーネント名>
```

## 例

```
/review-docs Dial
/review-docs 日記作成機能
/review-docs 自動保存
/review-docs DateRange値オブジェクト
```

## このスキルが行うこと

1. **該当する設計書の特定**: 機能名から関連する設計書を自動的に特定
2. **関連箇所の抽出**: 設計書から実装に必要な情報を抽出
3. **MVP版の確認**: MVP版とPhase 2の区別を明確化
4. **実装ガイドの提供**: 具体的な実装方針を提示

## 対象設計書

- `docs/00_INDEX.md`: プロジェクト概要
- `docs/01_REQUIREMENTS.md`: 要件定義
- `docs/02_ARCHITECTURE.md`: システムアーキテクチャ
- `docs/03_DATA_MODEL.md`: データモデル設計
- `docs/04_UI_UX_DESIGN.md`: UI/UX設計
- `docs/05_FEATURES.md`: 機能仕様
- `docs/06_SECURITY.md`: セキュリティ設計
- `docs/07_PERFORMANCE.md`: パフォーマンス設計

## 作業手順

### 1. 機能名の特定

ユーザーから指定された機能名を確認し、関連する設計書を特定する。

**機能名の例**:
- Dial（日付選択Dial）
- 日記作成機能
- 自動保存
- DiaryEntryエンティティ
- DateValue値オブジェクト
- PastEntriesList

### 2. 関連設計書の読み込み

特定した設計書を読み込む。必要に応じて複数の設計書を並列で読み込む。

**例**:
```
機能名: Dial
→ 関連設計書:
  - 01_REQUIREMENTS.md (FR-01: 日付選択機能)
  - 04_UI_UX_DESIGN.md (セクション3.1: Dial)
  - 05_FEATURES.md (セクション1: Dial操作による日付選択)
```

### 3. MVP版の仕様を抽出

**重要**: MVP版とPhase 2を必ず区別する。

MVP版の特徴:
- LocalStorageのみ
- Client Componentsのみ（'use client'）
- 認証なし
- 自動保存のみ（保存ボタンなし）
- カレンダーUIによる日付選択（Dialは補助）

### 4. 実装方針を提示

以下の観点から実装方針を提示する:

#### アーキテクチャ
- データ保存方法（LocalStorage / Prisma）
- コンポーネントタイプ（Client / Server）
- 状態管理（useState / Context）

#### データモデル
- 使用するエンティティ・値オブジェクト
- バリデーションルール（Zodスキーマ）
- リポジトリインターフェース

#### UI設計
- Atomic Design階層（atoms / molecules / organisms）
- レスポンシブ対応（モバイル / タブレット / デスクトップ）
- アクセシビリティ（ARIA属性、キーボード操作）

#### テスト
- テストファースト（TDD）
- テストケース（正常系 / 異常系）

### 5. チェックリストの提供

実装時に確認すべきチェックリストを提供する。

### 6. コード例の抽出

設計書から関連するコード例を抽出する。

## 出力フォーマット

```markdown
# 設計書レビュー: <機能名>

## 📚 関連設計書

- **01_REQUIREMENTS.md**: FR-XX セクション名
- **05_FEATURES.md**: セクションY「機能名」
- **04_UI_UX_DESIGN.md**: セクションZ「コンポーネント名」

## 🎯 MVP版の仕様

### 必須要件（Must）
1. 要件1の詳細
2. 要件2の詳細

### 任意要件（Should）
1. 任意要件1
2. 任意要件2

### 制約（Constraint）
1. 制約1
2. 制約2

### Phase 2での実装（将来）
- 将来実装する機能

## 🏗️ 実装方針

### アーキテクチャ
- **データ保存**: LocalStorageDiaryRepository
- **コンポーネント**: Client Component（'use client'）
- **状態管理**: useState, useEffect

### データモデル
- **エンティティ**: DiaryEntry
- **値オブジェクト**: DateValue（使用する場合）
- **バリデーション**: DiaryEntrySchema (Zod)

### UI設計
- **Atomic Design階層**: organisms / molecules / atoms
- **主要コンポーネント**: コンポーネント名
- **依存コンポーネント**: 下位コンポーネントのリスト

### レスポンシブ対応
- **モバイル（〜767px）**: 仕様
- **タブレット（768px〜1023px）**: 仕様
- **デスクトップ（1024px〜）**: 仕様

### アクセシビリティ
- **ARIA属性**: aria-label, aria-describedby など
- **キーボード操作**: Tab, Enter, Escape など
- **フォーカス管理**: focus-visible など

## 📝 実装チェックリスト

### 開始前
- [ ] 関連する設計書を全て確認した
- [ ] MVP版とPhase 2の区別を理解した
- [ ] Atomic Designの階層を確認した

### 実装時
- [ ] テストを先に書いた（TDD）
- [ ] エンティティ・値オブジェクトを使用した
- [ ] バリデーションを実装した
- [ ] Clean Architectureの依存関係を守った

### 完了時
- [ ] テストが全て通る
- [ ] アクセシビリティを確認した
- [ ] レスポンシブデザインを確認した
- [ ] 設計書との整合性を再確認した

## 💡 実装のポイント

- ポイント1
- ポイント2

## ⚠️ 注意事項

- 注意事項1
- 注意事項2

## 🔗 関連コード例

（設計書から抽出したコード例）
```

## 重要な注意事項

1. **MVP版とPhase 2を混同しない**
   - MVP版: LocalStorage + Client Components
   - Phase 2: Prisma + Server Components

2. **設計書の内容を正確に抽出する**
   - 推測や追加の提案はしない
   - 設計書に記載されている内容のみを抽出

3. **最新の設計書を参照する**
   - FINAL_REVIEW_RESULT.md を確認済み
   - すべての修正が反映されている

4. **複数の設計書を横断的に参照する**
   - 機能仕様（05）だけでなく、要件（01）、UI設計（04）も確認
   - アーキテクチャ（02）、データモデル（03）との整合性も確認

5. **実装可能な具体的な情報を提供する**
   - 抽象的な説明ではなく、具体的なコード例を提示
   - チェックリストは実際にチェックできる項目にする
