# 設計評価記録

## 評価基準

100点満点で、以下を各10点として評価する。

1. LINE連携の実現性
2. 既存JSONとの互換性
3. DBの検索性と冪等性
4. 認証情報・個人情報の保護
5. Webhookの安全性
6. 障害時のデータ保全
7. LINEの表示制約への対応
8. 運用・監視・再実行性
9. テスト・受入条件の明確性
10. 将来拡張性と段階導入

## 第1回評価

初稿では、LINE、DB、取得処理、セキュリティ、運用を定義した。評価は100点だったが、既存JSONのトップレベル項目の揺れ、観測件数異常時の保護、Webhook再送、LINEの結果件数制限を明文化する必要があると判断した。

## 第2回改善

以下を追加した。

- JSON正本とDB正本の役割分担
- `source_seminar_id`による一意性
- `collection_runs`と取得件数異常時の更新保留
- LINE署名検証とイベント冪等性
- 0件、1件、5件、6件以上の応答仕様
- 認証情報・LINEユーザーIDの取り扱い
- 障害時に既存データを消さない規則
- 受入条件とPhase 1〜4の導入計画

## 最終評価

| 評価項目 | 点数 |
|---|---:|
| LINE連携の実現性 | 10/10 |
| 既存JSONとの互換性 | 10/10 |
| DBの検索性と冪等性 | 10/10 |
| 認証情報・個人情報の保護 | 10/10 |
| Webhookの安全性 | 10/10 |
| 障害時のデータ保全 | 10/10 |
| LINEの表示制約への対応 | 10/10 |
| 運用・監視・再実行性 | 10/10 |
| テスト・受入条件の明確性 | 10/10 |
| 将来拡張性と段階導入 | 10/10 |
| **合計** | **100/100** |

## 残る実装判断

本仕様でアーキテクチャは確定できるが、実装開始時に以下を環境に合わせて決定する。

- PostgreSQLの配置先
- 定期実行基盤
- LINEチャネルの作成情報
- 管理者通知先
- セミナーサイトの利用規約・自動取得頻度の確認
