---
generated_at: 2026-02-24 23:10:00
metrics:
  claims_total: 90
  claims_with_evidence: 88
  claims_without_evidence: 2
confidence_derived: 0.98
---

# 根拠レポート：auth.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧（auth.csv）の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：88 / 90、根拠なし：2
- 優先レビュー（高）
  1. **C-79 (AuthIdentity cascades)**: カスケード削除の実際の動作はDBレベルの統合テストで確認が必要
  2. **C-84 (ProviderIdentity indexes)**: ユニーク制約違反のエラー処理はDBレベルの統合テストで確認が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/modules/auth/src/services/auth-module.ts` - AuthModuleServiceクラス定義
- E-02: `packages/modules/auth/src/services/auth-provider.ts` - AuthProviderServiceクラス定義
- E-03: `packages/modules/auth/src/providers/medusa-cloud-auth.ts` - MedusaCloudAuthServiceクラス定義
- E-04: `packages/modules/auth/src/loaders/providers.ts` - プロバイダーローダー定義
- E-05: `packages/modules/auth/src/models/auth-identity.ts` - AuthIdentityモデル定義
- E-06: `packages/modules/auth/src/models/provider-identity.ts` - ProviderIdentityモデル定義
- E-07: `packages/modules/auth/src/types/index.ts` - 型定義
- E-08: `packages/modules/auth/src/joiner-config.ts` - Joiner設定
- E-09: `packages/modules/auth/src/index.ts` - モジュールエクスポート
- E-10: `CLAUDE.md` - プロジェクト構成・コーディング規約

## 3) Claims と根拠の対応（レビューの主戦場）

### AuthModuleService（auth-module.ts）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | createAuthIdentities - 単一のAuthIdentity作成 | E-01 (line 84-100) | ○ |
| C-02 | createAuthIdentities - 複数のAuthIdentity作成 | E-01 (line 74-100) | ○ |
| C-03 | createAuthIdentities - 空配列の処理 | E-01 (line 84-100) | ○ |
| C-04 | createAuthIdentities - デフォルトsharedContext | E-01 (line 87) | ○ |
| C-05 | updateAuthIdentities - 単一更新 | E-01 (line 115-133) | ○ |
| C-06 | updateAuthIdentities - 複数更新 | E-01 (line 104-133) | ○ |
| C-07 | updateAuthIdentities - 存在しないID | E-01 (line 121-124) | ○ |
| C-08 | register - 正常系 | E-01 (line 135-148) | ○ |
| C-09 | register - プロバイダー未登録 | E-01 (line 145-147) | ○ |
| C-10 | register - 不正データ | E-01 (line 145-147) | ○ |
| C-11 | authenticate - 正常系 | E-01 (line 227-240) | ○ |
| C-12 | authenticate - 認証失敗 | E-01 (line 237-239) | ○ |
| C-13 | authenticate - プロバイダー未登録 | E-01 (line 237-239) | ○ |
| C-14 | validateCallback - 正常系 | E-01 (line 242-255) | ○ |
| C-15 | validateCallback - 検証失敗 | E-01 (line 252-254) | ○ |
| C-16 | createProviderIdentities - 単一作成 | E-01 (line 162-178) | ○ |
| C-17 | createProviderIdentities - 複数作成 | E-01 (line 151-178) | ○ |
| C-18 | updateProviderIdentities - 単一更新 | E-01 (line 192-210) | ○ |
| C-19 | updateProviderIdentities - 複数更新 | E-01 (line 180-210) | ○ |
| C-20 | updateProvider - 正常系 | E-01 (line 212-225) | ○ |
| C-21 | updateProvider - プロバイダー未登録 | E-01 (line 222-224) | ○ |
| C-22 | getAuthIdentityProviderService.retrieve - 正常系 | E-01 (line 261-291) | ○ |
| C-23 | getAuthIdentityProviderService.retrieve - NOT_FOUND | E-01 (line 274-279) | ○ |
| C-24 | getAuthIdentityProviderService.retrieve - 複数件エラー | E-01 (line 281-286) | ○ |
| C-25 | getAuthIdentityProviderService.create - 正常系 | E-01 (line 293-316) | ○ |
| C-26 | getAuthIdentityProviderService.create - オプショナル | E-01 (line 298-307) | ○ |
| C-27 | getAuthIdentityProviderService.update - 正常系 | E-01 (line 317-384) | ○ |
| C-28 | getAuthIdentityProviderService.update - NOT_FOUND | E-01 (line 336-341) | ○ |
| C-29 | getAuthIdentityProviderService.update - ProviderIdentity不存在 | E-01 (line 354-359) | ○ |
| C-30 | getAuthIdentityProviderService.setState - 正常系 | E-01 (line 385-394) | ○ |
| C-31 | getAuthIdentityProviderService.setState - キャッシュ未設定 | E-01 (line 386-391) | ○ |
| C-32 | getAuthIdentityProviderService.getState - 正常系 | E-01 (line 396-405) | ○ |
| C-33 | getAuthIdentityProviderService.getState - キャッシュ未設定 | E-01 (line 397-402) | ○ |

### AuthProviderService（auth-provider.ts）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-34 | constructor - 正常系 | E-02 (line 21-26) | ○ |
| C-35 | constructor - loggerフォールバック | E-02 (line 23-25) | ○ |
| C-36 | retrieveProviderRegistration - 正常系 | E-02 (line 28-32) | ○ |
| C-37 | retrieveProviderRegistration - AwilixResolutionError | E-02 (line 33-43) | ○ |
| C-38 | retrieveProviderRegistration - その他エラー | E-02 (line 45-48) | ○ |
| C-39 | authenticate - 正常系 | E-02 (line 52-59) | ○ |
| C-40 | register - 正常系 | E-02 (line 61-68) | ○ |
| C-41 | update - 正常系 | E-02 (line 70-77) | ○ |
| C-42 | validateCallback - 正常系 | E-02 (line 79-89) | ○ |

### MedusaCloudAuthService（medusa-cloud-auth.ts）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | constructor - 正常系 | E-03 (line 26-34) | ○ |
| C-44 | register - NOT_ALLOWED | E-03 (line 36-41) | ○ |
| C-45 | authenticate - リダイレクト返却 | E-03 (line 43-64) | ○ |
| C-46 | authenticate - カスタムcallback_url | E-03 (line 59) | ○ |
| C-47 | authenticate - query.error | E-03 (line 50-55) | ○ |
| C-48 | validateCallback - 正常系 | E-03 (line 66-134) | ○ |
| C-49 | validateCallback - query.error | E-03 (line 73-78) | ○ |
| C-50 | validateCallback - コードなし | E-03 (line 80-83) | ○ |
| C-51 | validateCallback - state期限切れ | E-03 (line 85-88) | ○ |
| C-52 | validateCallback - トークン交換失敗 | E-03 (line 105-119) | ○ |
| C-53 | verify_ - 正常系 | E-03 (line 136-190) | ○ |
| C-54 | verify_ - idTokenなし | E-03 (line 140-142) | ○ |
| C-55 | verify_ - 無効JWT | E-03 (line 147-149) | ○ |
| C-56 | verify_ - メール未検証 | E-03 (line 152-157) | ○ |
| C-57 | verify_ - 新規ユーザー作成 | E-03 (line 170-184) | ○ |
| C-58 | getRedirect - 正常系 | E-03 (line 192-200) | ○ |
| C-59 | getRedirect - URLパラメータ | E-03 (line 194-198) | ○ |
| C-60 | getClientId - environment_handle優先 | E-03 (line 203-205) | ○ |
| C-61 | getClientId - sandbox_handleフォールバック | E-03 (line 204) | ○ |

### Loaders（providers.ts）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | validateCloudOptions - 有効オプション | E-04 (line 11-35) | ○ |
| C-63 | validateCloudOptions - sandbox_handleのみ | E-04 (line 21-23) | ○ |
| C-64 | validateCloudOptions - ハンドルなし | E-04 (line 21-23) | ○ |
| C-65 | validateCloudOptions - authorize_endpointなし | E-04 (line 25-32) | ○ |
| C-66 | validateCloudOptions - token_endpointなし | E-04 (line 25-32) | ○ |
| C-67 | validateCloudOptions - api_keyなし | E-04 (line 25-32) | ○ |
| C-68 | validateCloudOptions - callback_urlなし | E-04 (line 25-32) | ○ |
| C-69 | validateCloudOptions - optionsがundefined | E-04 (line 19) | ○ |
| C-70 | registrationFn - コンテナ登録 | E-04 (line 37-51) | ○ |
| C-71 | registrationFn - 識別子追加 | E-04 (line 47-50) | ○ |
| C-72 | registrationFn - optionsがundefined | E-04 (line 40) | ○ |
| C-73 | default loader - クラウド認証登録 | E-04 (line 53-68) | ○ |
| C-74 | default loader - disabled時スキップ | E-04 (line 63) | ○ |
| C-75 | default loader - 無効オプション時スキップ | E-04 (line 63) | ○ |
| C-76 | default loader - カスタムプロバイダー | E-04 (line 70-74) | ○ |
| C-77 | default loader - 空プロバイダー配列 | E-04 (line 72) | ○ |

### Models（auth-identity.ts, provider-identity.ts）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | AuthIdentity - IDプレフィックス | E-05 (line 6) | ○ |
| C-79 | AuthIdentity - カスケード削除 | E-05 (line 12-14) | △ |
| C-80 | AuthIdentity - app_metadata保存 | E-05 (line 10) | ○ |
| C-81 | AuthIdentity - app_metadataがnull | E-05 (line 10) | ○ |
| C-82 | ProviderIdentity - 必須フィールド | E-06 (line 7-8) | ○ |
| C-83 | ProviderIdentity - ユニーク制約 | E-06 (line 15-21) | ○ |
| C-84 | ProviderIdentity - ユニーク制約違反 | E-06 (line 15-21) | △ |
| C-85 | ProviderIdentity - user_metadata保存 | E-06 (line 12) | ○ |
| C-86 | ProviderIdentity - user_metadataがnull | E-06 (line 12) | ○ |
| C-87 | ProviderIdentity - provider_metadata保存 | E-06 (line 13) | ○ |
| C-88 | ProviderIdentity - auth_identityリレーション | E-06 (line 9-11) | ○ |

### Other（joiner-config.ts, index.ts）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | joinerConfig - 定義 | E-08 (line 4-6) | ○ |
| C-90 | Module export - 正常系 | E-09 (line 6-9) | ○ |

## 4) 不足情報（Unknown / Missing）

- **C-79 (AuthIdentity cascades)**: カスケード削除の動作はモデル定義（E-05 line 12-14）で確認できるが、実際のDB動作は統合テストで確認が必要
  - 候補：integration-tests内の既存テスト / DBレベルのテスト
- **C-84 (ProviderIdentity indexes)**: ユニーク制約違反時のエラー処理は、DBレベルでの動作確認が必要
  - 候補：integration-tests内の既存テスト / DBレベルのテスト

## 5) リスクフラグ（レビュー観点）

- **0: 低リスク** - 大部分のテストケース
  - ソースコードから直接確認できる機能のテスト
  - 明確なエラーハンドリングパターンに基づくテスト

- **1: 中リスク** - 境界値・オプショナルパラメータ関連
  - C-03, C-04, C-26, C-35, C-61, C-69, C-72, C-77, C-81, C-86
  - コード上は推測可能だが、実際の動作確認が望ましい

- **2: 高リスク** - DB依存の動作
  - C-79 (カスケード削除): モデル定義はあるが、DBレベルの動作確認が必要
  - C-84 (ユニーク制約違反): DBのエラー処理の確認が必要

## 6) レビュアーチェックリスト（最小）

- [ ] AuthModuleService のpublicメソッド（createAuthIdentities, updateAuthIdentities, register, authenticate, validateCallback等）のテストケースが網羅されているか
- [ ] AuthProviderService のプロバイダー委譲機能のテストケースが適切か
- [ ] MedusaCloudAuthService のOAuth認証フロー（authenticate -> validateCallback -> verify_）のテストケースが網羅されているか
- [ ] getAuthIdentityProviderService 内部の retrieve/create/update/setState/getState メソッドのエラーハンドリングが適切にテストされているか
- [ ] validateCloudOptions のバリデーションロジックが全分岐カバーされているか
- [ ] モデル（AuthIdentity, ProviderIdentity）のリレーションとインデックス制約がテストされているか
- [ ] キャッシュモジュール未設定時のエラー処理（C-31, C-33）が正しく検証されているか
- [ ] セキュリティ関連（メール未検証時のエラー C-56）のテストケースが含まれているか
