---
generated_at: 2026-02-24 23:20:00
metrics:
  claims_total: 72
  claims_with_evidence: 68
  claims_without_evidence: 4
confidence_derived: 0.94
---

# 根拠レポート：event-bus-redis.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：68 / 72、根拠なし：4
- 優先レビュー（高）
  1. **UT-EBR-028**: 空配列処理の挙動について既存テストでの検証なし
  2. **UT-EBR-068**: ExternalModuleDeclaration処理の具体的挙動
  3. **UT-EBR-069〜071**: 型定義テストの必要性判断

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

- E-01: `packages/modules/event-bus-redis/src/services/event-bus-redis.ts` - メインサービス実装
- E-02: `packages/modules/event-bus-redis/src/services/__tests__/event-bus.ts` - 既存単体テスト
- E-03: `packages/modules/event-bus-redis/src/loaders/index.ts` - ローダー実装
- E-04: `packages/modules/event-bus-redis/src/types/index.ts` - 型定義
- E-05: `packages/modules/event-bus-redis/src/initialize/index.ts` - 初期化関数
- E-06: `packages/modules/event-bus-redis/src/index.ts` - モジュールエクスポート
- E-07: `packages/modules/event-bus-redis/integration-tests/__tests__/index.spec.ts` - 統合テスト
- E-08: `packages/core/utils/src/event-bus/index.ts` - EventPriority定数（参照先）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-EBR-001) | Queueインスタンスが正しく生成されること | E-01 L92-96, E-02 L47-52 | ○ |
| C-02 (UT-EBR-002) | Workerインスタンスが正しく生成されること | E-01 L99-106, E-02 L54-63 | ○ |
| C-03 (UT-EBR-003) | カスタムqueueNameが設定されること | E-01 L82 | ○ |
| C-04 (UT-EBR-004) | queueNameがnullの場合デフォルト値が使用されること | E-01 L82 | ○ |
| C-05 (UT-EBR-005) | queueOptionsが正しく設定されること | E-01 L83 | ○ |
| C-06 (UT-EBR-006) | workerOptionsが正しく設定されること | E-01 L84 | ○ |
| C-07 (UT-EBR-007) | jobOptionsが正しく設定されること | E-01 L85 | ○ |
| C-08 (UT-EBR-008) | bullWorkerが起動されること | E-01 L110-112 | ○ |
| C-09 (UT-EBR-009) | queueがクローズされること | E-01 L113-114 | ○ |
| C-10 (UT-EBR-010) | Redis接続が切断されること | E-01 L116 | ○ |
| C-11 (UT-EBR-011) | bullWorkerがクローズされること | E-01 L118-120 | ○ |
| C-12 (UT-EBR-012) | デフォルトオプションでイベントがビルドされること | E-01 L141-149, E-02 L90-114 | ○ |
| C-13 (UT-EBR-013) | internal=trueでLOWEST優先度が設定されること | E-01 L145, E-02 L374-400 | ○ |
| C-14 (UT-EBR-014) | グローバルjobOptionsがマージされること | E-01 L147, E-02 L141-185 | ○ |
| C-15 (UT-EBR-015) | emitオプションがグローバルオプションを上書きすること | E-01 L148, E-02 L467-506 | ○ |
| C-16 (UT-EBR-016) | メッセージレベルオプションがemitオプションを上書きすること | E-01 L160-163, E-02 L579-605 | ○ |
| C-17 (UT-EBR-017) | 無効な優先度値で警告ログが出力されること | E-01 L170-182 | ○ |
| C-18 (UT-EBR-018) | 優先度が上限を超えた場合デフォルト値にフォールバックすること | E-01 L170-182 | ○ |
| C-19 (UT-EBR-019) | イベントデータとメタデータが正しくシリアライズされること | E-01 L155-158 | ○ |
| C-20 (UT-EBR-020) | 単一イベントがキューに追加されること | E-02 L90-114 | ○ |
| C-21 (UT-EBR-021) | 複数イベントがキューに一括追加されること | E-01 L239-240, E-02 L607-663 | ○ |
| C-22 (UT-EBR-022) | グループ化イベントがステージングされること | E-01 L210-222, E-02 L227-245 | ○ |
| C-23 (UT-EBR-023) | 非グループ化イベントとグループ化イベントが同時に処理されること | E-02 L247-335 | ○ |
| C-24 (UT-EBR-024) | カスタムgroupedEventsTTLが設定されること | E-01 L203, L253 | ○ |
| C-25 (UT-EBR-025) | サブスクライバーがないイベントはキューに追加されないこと | E-02 L880-889 | ○ |
| C-26 (UT-EBR-026) | ワイルドカードサブスクライバーがあればキューに追加されること | E-02 L918-929 | ○ |
| C-27 (UT-EBR-027) | interceptorsが呼ばれること | E-02 L891-916 | ○ |
| C-28 (UT-EBR-028) | 空のイベント配列が渡された場合 | **根拠なし** | △ |
| C-29 (UT-EBR-029) | TTLが正しく設定されること | E-01 L263-269 | ○ |
| C-30 (UT-EBR-030) | eventGroupIdが空の場合処理がスキップされること | E-01 L264-266 | ○ |
| C-31 (UT-EBR-031) | イベントがRedisリストに追加されること | E-01 L271-279 | ○ |
| C-32 (UT-EBR-032) | 複数イベントがJSON形式でシリアライズされること | E-01 L277 | ○ |
| C-33 (UT-EBR-033) | ステージングされたイベントが取得されること | E-01 L281-289 | ○ |
| C-34 (UT-EBR-034) | JSONがパースされてオブジェクト配列として返されること | E-01 L287 | ○ |
| C-35 (UT-EBR-035) | 空のリストの場合空配列が返されること | E-01 L284-288 | ○ |
| C-36 (UT-EBR-036) | グループ化イベントがキューに追加されること | E-01 L291-320, E-02 L315-335 | ○ |
| C-37 (UT-EBR-037) | リリース後にステージングがクリアされること | E-01 L319, E-02 L319-321 | ○ |
| C-38 (UT-EBR-038) | interceptorsがグループイベントに対して呼ばれること | E-01 L296-306, E-02 L985-1006 | ○ |
| C-39 (UT-EBR-039) | サブスクライバーがないイベントはキューに追加されないこと | E-02 L931-961 | ○ |
| C-40 (UT-EBR-040) | グループイベントが完全にクリアされること | E-01 L365, E-07 L89-115 | ○ |
| C-41 (UT-EBR-041) | 特定のイベント名のみクリアされること | E-01 L334-346, E-07 L117-144 | ○ |
| C-42 (UT-EBR-042) | 部分クリア時にパイプラインが使用されること | E-01 L348-360 | ○ |
| C-43 (UT-EBR-043) | eventGroupIdが空の場合処理がスキップされること | E-01 L330-332 | ○ |
| C-44 (UT-EBR-044) | サブスクライバーが正しく呼び出されること | E-02 L1018-1039 | ○ |
| C-45 (UT-EBR-045) | ワイルドカードサブスクライバーも呼び出されること | E-01 L376-378 | ○ |
| C-46 (UT-EBR-046) | 処理情報がログに出力されること | E-01 L407-409, E-02 L1033-1035 | ○ |
| C-47 (UT-EBR-047) | 優先度情報がログに含まれること | E-01 L405-408 | ○ |
| C-48 (UT-EBR-048) | サブスクライバーエラー時に警告ログが出力されること | E-01 L431-434, E-02 L1073-1084 | ○ |
| C-49 (UT-EBR-049) | リトライ設定時に失敗したサブスクライバーが再試行されること | E-01 L447-465, E-02 L1134-1173 | ○ |
| C-50 (UT-EBR-050) | 最終試行時に'Final retry attempt'がログ出力されること | E-01 L397-399, E-02 L1125-1132 | ○ |
| C-51 (UT-EBR-051) | 完了済みサブスクライバーがスキップされること | E-01 L384-387 | ○ |
| C-52 (UT-EBR-052) | 成功したサブスクライバーIDがジョブデータに追加されること | E-01 L451-458 | ○ |
| C-53 (UT-EBR-053) | リトライ未設定時に警告ログが出力されること | E-01 L467-472, E-02 L1086-1089 | ○ |
| C-54 (UT-EBR-054) | internal=trueのイベントはログ出力されないこと | E-01 L395 | ○ |
| C-55 (UT-EBR-055) | イベントデータが正しくデシリアライズされてサブスクライバーに渡されること | E-01 L417-423 | ○ |
| C-56 (UT-EBR-056) | Redis接続が確立されること | E-03 L27-34 | ○ |
| C-57 (UT-EBR-057) | redisUrlがない場合エラーがスローされること | E-03 L21-25 | ○ |
| C-58 (UT-EBR-058) | Redis接続成功時にinfoログが出力されること | E-03 L40 | ○ |
| C-59 (UT-EBR-059) | Redis接続失敗時にerrorログが出力されること | E-03 L41-44 | ○ |
| C-60 (UT-EBR-060) | カスタムRedisオプションがマージされること | E-03 L33 | ○ |
| C-61 (UT-EBR-061) | コンテナに依存関係が登録されること | E-03 L47-53 | ○ |
| C-62 (UT-EBR-062) | maxRetriesPerRequestがnullで設定されること | E-03 L29 | ○ |
| C-63 (UT-EBR-063) | enableReadyCheckがfalseで設定されること | E-03 L30 | ○ |
| C-64 (UT-EBR-064) | lazyConnectがtrueで設定されること | E-03 L32 | ○ |
| C-65 (UT-EBR-065) | MedusaModuleがブートストラップされること | E-05 L14-20 | ○ |
| C-66 (UT-EBR-066) | IEventBusServiceが返されること | E-05 L22 | ○ |
| C-67 (UT-EBR-067) | 正しいmoduleKeyが使用されること | E-05 L13 | ○ |
| C-68 (UT-EBR-068) | ExternalModuleDeclarationが渡された場合正しく処理されること | E-05 L17-19 | △ |
| C-69 (UT-EBR-069) | eventName、data、completedSubscriberIdsプロパティが定義されていること | E-04 L17-21 | △ |
| C-70 (UT-EBR-070) | groupedEventsTTLとinternalプロパティが定義されていること | E-04 L23-26 | △ |
| C-71 (UT-EBR-071) | 全オプションプロパティがオプショナルであること | E-04 L35-80 | ○ |
| C-72 (UT-EBR-072) | service, loadersがエクスポートされること | E-06 L5-11 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-28 (UT-EBR-028)**: 空配列が渡された場合の挙動について、既存テストでの明示的な検証がない。コード上では `eventsDataArray.length` による暗黙的な処理が行われる
  - 候補：ソースコードのL206-241を確認し、空配列の挙動を実装から推測
- **C-68 (UT-EBR-068)**: ExternalModuleDeclarationの具体的な処理パスについて、型アサーションのみで詳細な検証がない
  - 候補：MedusaModule.bootstrap()の内部実装を確認
- **C-69〜70**: 型定義のテストは通常不要だが、ランタイムでの型チェックが必要な場合は検討
  - 候補：TypeScriptコンパイル時の型チェックで担保

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 型定義テスト（C-69〜71）- TypeScriptの型システムで担保される
- **1 (中リスク)**: 空配列処理（C-28）- エッジケースだが業務影響は限定的
- **1 (中リスク)**: ExternalModuleDeclaration処理（C-68）- 設定誤り時の影響は限定的
- **2 (高リスク)**: なし

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度テストケース（UT-EBR-001〜011, 012〜016, 020〜022, 036〜040, 044〜055, 056〜057, 061, 065〜066）の妥当性確認
- [ ] BullMQ Queue/Workerの初期化テストが、実際のモック設定と整合しているか確認
- [ ] イベント優先度（priority）関連テスト（UT-EBR-013〜018, 047）のEventPriority定数との整合性確認
- [ ] グループイベント処理（UT-EBR-022〜024, 031〜043）のRedisコマンドとの整合性確認
- [ ] リトライロジック（UT-EBR-049〜053）の既存テストコードとの網羅性比較
- [ ] Loader（UT-EBR-056〜064）のエラーハンドリングパスの網羅性確認
