---
description: churrasco の設計書（docs/spec/*.md）を評価・改善するスキル。設計書の品質をチェックし、実装との整合性を確認する。トリガー例 - 「設計書を評価して」「設計を見直して」「spec を確認して」「update design」。
---

# update-design

設計書の品質を評価し、改善提案を行うスキル。

## Phase 1: 設計書の収集

1. `docs/spec/` ディレクトリ配下のすべての `.md` ファイルを読み込む
2. 各設計書のタイトル・構成を把握する
3. 設計書が存在しない場合は、その旨を報告して終了する

## Phase 2: 設計書の評価

各設計書を以下のカテゴリで評価する:

### 評価カテゴリ

1. **モジュール・クラス設計**
   - TypeScript クラス・インターフェースの責務分離が適切か
   - 型定義（type / interface）が明確か
   - 依存注入（DI）パターンが適切に設計されているか

2. **VS Code API 利用設計**
   - StatusBarItem・TreeDataProvider・commands の使い方が適切か
   - ExtensionContext のライフサイクル管理（activate / deactivate）が考慮されているか
   - Disposable の管理が設計されているか

3. **状態管理・永続化設計**
   - ExtensionContext.globalState のデータ構造が明確か
   - セッション状態（SessionState）の遷移が定義されているか
   - 状態の初期化・リセット方針が明記されているか

4. **エラーハンドリング設計**
   - async/await と try-catch の使い方が適切か
   - VS Code API のエラーケースが考慮されているか
   - ユーザーへのエラー通知方針が設計されているか

5. **データフロー**
   - extension.ts から各 Service・Controller への依存フローが明確か
   - ユーザー操作（Eat / Pass / End）から状態変更・UI 更新までのフローが記載されているか
   - タイマーイベントと肉到着通知のフローが明確か

### 評価基準

各カテゴリを 100 点満点で評価する。**合格ライン: 90 点以上**

| スコア | レベル | 意味 |
|--------|--------|------|
| 90-100 | 優秀 | 設計が明確で実装に即座に移れる。補足不要 |
| 70-89 | 良好 | 実装に移れるが、軽微な補足があるとなお良い |
| 50-69 | 改善推奨 | 理解可能だが、補足・明確化が望ましい |
| 30-49 | 要改善 | 設計が不明確で、実装前に修正が必要 |
| 1-29 | 重大不備 | 該当セクションが欠落、または根本的な設計ミス |

スコアリングの目安:
- **100**: 全サブ項目が完全に記載され、実装者が迷う余地がない
- **90**: 主要な設計判断が全て記載され、実装に十分な詳細がある
- **70-80**: 主要な設計判断が記載されているが、一部補足が望ましい
- **50-60**: 基本方針は理解できるが、具体的な型定義や API の詳細が不足
- **30-40**: 概要レベルの記述のみで、実装に必要な詳細が大幅に不足
- **10-20**: セクションは存在するが内容が断片的
- **1-9**: セクションが実質的に欠落

## Phase 3: ソースコードとの整合性チェック

1. `src/` 配下の TypeScript ソースコードを参照する
2. 設計書に記載されたモジュール・クラス・関数シグネチャが実装と一致しているか確認する
3. 設計書に記載されているが未実装の機能を特定する
4. 実装されているが設計書に記載されていない機能を特定する

## Phase 4: 改善提案の出力

以下の形式で改善提案を出力する:

```markdown
## 設計書評価レポート

### [設計書名]

#### 評価サマリ
| カテゴリ | スコア |
|---------|--------|
| モジュール・クラス設計 | XX/100 |
| VS Code API 利用設計 | XX/100 |
| 状態管理・永続化設計 | XX/100 |
| エラーハンドリング設計 | XX/100 |
| データフロー | XX/100 |

**平均スコア**: XX.X / 100 — 🟢/🟡/🟠/🔴 [判定テキスト]

総合判定の基準:
- 🟢 実装着手可能: 平均 90 以上
- 🟡 軽微な改善後に着手可能: 平均 70-89
- 🟠 改善必要: 平均 50-69
- 🔴 大幅改善必要: 平均 50 未満

#### 改善提案
1. [具体的な改善内容]
2. [具体的な改善内容]

#### ソースコードとの差分
- [差分の詳細]
```

## 記述ルール

- コード例は TypeScript で記述すること
- 設計書は日本語で記述すること
- クラス名・インターフェース名は PascalCase に従うこと
- 関数名・変数名は camelCase に従うこと
