# 技術差分

## 1. 参照する全体設計

- [DB設計](../../architecture/02_db_design.md)
- [API設計](../../architecture/03_api_design.md)
- [認証・権限設計](../../architecture/04_auth_permission.md)
- [エラー設計](../../architecture/05_error_design.md)
- [ログ・監視設計](../../architecture/06_logging_monitoring.md)
- [非機能要件](../../architecture/07_non_functional_requirements.md)
- [セキュリティ設計](../../architecture/08_security_design.md)
- [ディレクトリ構成](../../architecture/09_directory_structure.md)
- [ADR](../../adr/README.md)

---

## 2. この機能で追加・変更するディレクトリ / ファイル

このfeatureで追加・変更するファイルを記載します。

全体のディレクトリ設計方針は、以下を参照します。

- [ディレクトリ構成](../../architecture/09_directory_structure.md)

### 2.1 追加・変更ファイル構成

このfeatureで追加・変更するファイル構成をtree形式で書きます。

```txt
src/
└──
```

### 2.2 追加・変更ファイル一覧

| ファイル | 区分 | 役割 |
|---|---|---|
|  | 追加 / 変更 |  |
|  | 追加 / 変更 |  |

### 2.3 配置理由

| ファイル | 配置理由 |
|---|---|
|  |  |
|  |  |

### 2.4 変更しない場所

このfeatureでは、以下は変更しません。

-
-

---

## 3. この機能で追加・変更するAPI

| Method | Endpoint | 説明 |
|---|---|---|
| GET |  |  |
| POST |  |  |

### API詳細

#### GET [endpoint]

##### Query

| name | type | required | description |
|---|---|---:|---|
|  |  |  |  |

##### Response

```json
{
  "data": {}
}
```

##### Error

| status | code | reason |
|---:|---|---|
| 400 |  |  |
| 401 |  |  |
| 403 |  |  |

---

## 4. この機能で利用するDB

| テーブル | 用途 |
|---|---|
|  |  |

---

## 5. この機能で追加・変更するDB

なし / あり

### 変更内容

| テーブル | 変更内容 | 理由 |
|---|---|---|
|  |  |  |

---

## 6. この機能固有の権限

| 操作 | admin | staff | user | 未ログイン |
|---|---:|---:|---:|---:|
|  |  |  |  |  |

---

## 7. この機能固有のエラー

| ケース | HTTP Status | code | 表示 |
|---|---:|---|---|
|  |  |  |  |

---

## 8. この機能で出すログ

| イベント名 | タイミング | ログレベル |
|---|---|---|
|  |  | info |

---

## 9. この機能固有の非機能要件

-
-
-

---

## 10. 既存コードへの影響

-
-
-

---

## 11. 公式情報の確認

フレームワーク、ライブラリ、クラウド、ブラウザAPIなど、バージョンや推奨実装が変わり得るものを使う場合に記載します。

| 対象 | バージョン / 前提 | 確認した公式情報 | 採用方針 | 未確認事項 |
|---|---|---|---|---|
|  |  |  |  |  |

既存コードと公式情報が矛盾する場合は、実装前に人間へ確認します。

---

## 12. AI実装時の注意

このfeatureをAIコーディングツールに実装させる場合、以下を守ります。

- このファイルで定義した追加・変更ファイル構成に従う
- `06_tasks.md` の「変更してよい範囲」に記載された範囲のみ変更する
- ここに記載していないディレクトリやファイルを勝手に追加しない
- 新しいディレクトリ構成が必要に見える場合は、実装せず人間に確認する
- DB、認証・権限、課金、セキュリティ、既存APIレスポンス形式への影響がある場合は、人間に確認する
- フレームワーク、ライブラリ、外部サービスの実装判断は、必要に応じて公式情報を確認する

---

## 13. ADRが必要な判断

以下すべてに当てはまる判断がある場合は、`../../adr/` にADRを作成します。

- 後から変更するコストが高い
- 背景を知らない人が見たら意外に感じる
- 実際に複数の選択肢があり、トレードオフを選んだ

| 判断 | ADR | 理由 |
|---|---|---|
|  |  |  |

---

## 14. 関連資料

- [機能仕様](./02_functional_spec.md)
- [テスト計画](./05_test_plan.md)
- [実装計画](./06_tasks.md)
