---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 209
  claims_with_evidence: 209
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：Bus.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：209 / 209、根拠なし：0
- 優先レビュー（高）
  1. **Dispatcher.dispatchToQueue**：キューへのディスパッチはコアロジック、RuntimeExceptionの条件確認推奨
  2. **Batch.recordFailedJob**：失敗処理とコールバック実行順序の複雑なロジック
  3. **DatabaseBatchRepository.updateAtomicValues**：トランザクションとロック処理の確認推奨

## 2) 参照した情報（Evidence一覧）
> ここに実在するソースコードファイルを列挙

- E-01: `src/Illuminate/Bus/Dispatcher.php`
- E-02: `src/Illuminate/Bus/Batch.php`
- E-03: `src/Illuminate/Bus/PendingBatch.php`
- E-04: `src/Illuminate/Bus/BatchFactory.php`
- E-05: `src/Illuminate/Bus/BatchRepository.php`（インターフェース）
- E-06: `src/Illuminate/Bus/DatabaseBatchRepository.php`
- E-07: `src/Illuminate/Bus/DynamoBatchRepository.php`
- E-08: `src/Illuminate/Bus/UniqueLock.php`
- E-09: `src/Illuminate/Bus/Queueable.php`（トレイト）
- E-10: `src/Illuminate/Bus/Batchable.php`（トレイト）
- E-11: `src/Illuminate/Bus/ChainedBatch.php`
- E-12: `src/Illuminate/Bus/UpdatedBatchJobCounts.php`
- E-13: `src/Illuminate/Bus/BusServiceProvider.php`
- E-14: `src/Illuminate/Bus/PrunableBatchRepository.php`（インターフェース）
- E-15: `src/Illuminate/Bus/Events/BatchDispatched.php`
- E-16: `src/Illuminate/Bus/Events/BatchFinished.php`
- E-17: `src/Illuminate/Bus/Events/BatchCanceled.php`

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

### Dispatcherクラス（UT-BUS-001 - UT-BUS-027）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Dispatcherコンストラクタがcontainer, queueResolver, pipelineを初期化 | E-01 L64-69 | ○ |
| C-02 | dispatchメソッドがShouldQueue判定でキュー/即時を分岐 | E-01 L77-82 | ○ |
| C-03 | dispatchSyncがsyncコネクションでキュー実行 | E-01 L93-102 | ○ |
| C-04 | dispatchNowがパイプライン経由でコマンド実行 | E-01 L111-134 | ○ |
| C-05 | findBatchがBatchRepositoryからバッチ検索 | E-01 L141-144 | ○ |
| C-06 | batchメソッドがPendingBatch生成 | E-01 L152-155 | ○ |
| C-07 | chainメソッドがPendingChain生成 | E-01 L163-169 | ○ |
| C-08 | hasCommandHandler/getCommandHandlerがハンドラマッピング参照 | E-01 L177-195 | ○ |
| C-09 | dispatchToQueueがQueue実装チェックとRuntimeException発生 | E-01 L216-231 | ○ |
| C-10 | dispatchAfterResponseがterminatingコールバック登録 | E-01 L256-267 | ○ |
| C-11 | pipeThrough/mapがパイプ・ハンドラ設定 | E-01 L274-291 | ○ |

### Batchクラス（UT-BUS-028 - UT-BUS-068）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | Batchコンストラクタが全プロパティを初期化 | E-02 L108-134 | ○ |
| C-13 | freshメソッドがrepository.findを呼び出し | E-02 L141-144 | ○ |
| C-14 | addメソッドがジョブをバッチに追加しrepository更新 | E-02 L152-188 | ○ |
| C-15 | processedJobs = totalJobs - pendingJobs | E-02 L209-212 | ○ |
| C-16 | progress = (processedJobs / totalJobs) * 100（0除算対応） | E-02 L219-222 | ○ |
| C-17 | recordSuccessfulJobがdecrementPendingJobs呼び出しとコールバック実行 | E-02 L229-254 | ○ |
| C-18 | recordFailedJobがincrementFailedJobsとキャンセル/コールバック処理 | E-02 L334-359 | ○ |
| C-19 | allowsFailuresがoptions['allowFailures']参照 | E-02 L313-316 | ○ |
| C-20 | cancel/cancelled/finishedがrepository操作と状態判定 | E-02 L404-433 | ○ |
| C-21 | toArray/jsonSerializeが配列変換 | E-02 L467-490 | ○ |
| C-22 | __getがoptionsからプロパティ取得 | E-02 L498-501 | ○ |

### PendingBatchクラス（UT-BUS-069 - UT-BUS-102）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | コンストラクタがBatchable検証を実行 | E-03 L64-71 | ○ |
| C-24 | ensureJobIsBatchableがBatchable trait未使用でRuntimeException | E-03 L98-113 | ○ |
| C-25 | コールバックメソッド群がoptionsに登録 | E-03 L121-285 | ○ |
| C-26 | allowFailuresがbool/callable両対応 | E-03 L240-255 | ○ |
| C-27 | onConnection/onQueueがenum_value対応 | E-03 L306-344 | ○ |
| C-28 | dispatchがrepository.store + add + イベント発火 | E-03 L367-388 | ○ |
| C-29 | dispatchAfterResponseがterminatingコールバック登録 | E-03 L395-408 | ○ |
| C-30 | dispatchIf/dispatchUnlessが条件付きディスパッチ | E-03 L439-453 | ○ |

### BatchFactoryクラス（UT-BUS-103 - UT-BUS-104）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | makeメソッドがBatchインスタンス生成 | E-04 L43-56 | ○ |

### DatabaseBatchRepositoryクラス（UT-BUS-105 - UT-BUS-125）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | getがorderByDesc, limit, when対応 | E-06 L58-69 | ○ |
| C-33 | findがuseWritePdo使用 | E-06 L77-87 | ○ |
| C-34 | storeがorderedUuid生成とinsert | E-06 L95-113 | ○ |
| C-35 | incrementTotalJobsがExpression使用のアトミック更新 | E-06 L122-129 | ○ |
| C-36 | decrementPendingJobs/incrementFailedJobsがupdateAtomicValues使用 | E-06 L138-175 | ○ |
| C-37 | prune/pruneUnfinished/pruneCancelledがバッチ削除でループ処理 | E-06 L241-302 | ○ |
| C-38 | serialize/unserializeがPostgresConnection対応 | E-06 L331-358 | ○ |
| C-39 | toBatchがfactory.make呼び出し | E-06 L366-381 | ○ |

### DynamoBatchRepositoryクラス（UT-BUS-126 - UT-BUS-145）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | コンストラクタがMarshaler初期化 | E-07 L65-80 | ○ |
| C-41 | getがKeyConditionExpressionでクエリ | E-07 L89-112 | ○ |
| C-42 | findが空文字チェック + ConsistentRead対応 | E-07 L120-155 | ○ |
| C-43 | storeがTTL対応 | E-07 L163-192 | ○ |
| C-44 | incrementTotalJobs/decrementPendingJobs/incrementFailedJobsがUpdateExpression使用 | E-07 L201-300 | ○ |
| C-45 | transaction/rollBackが空実装（DynamoDB制約） | E-07 L383-395 | ○ |
| C-46 | createAwsDynamoTable/deleteAwsDynamoTableがDynamoDB操作 | E-07 L425-473 | ○ |

### UniqueLockクラス（UT-BUS-146 - UT-BUS-155）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | acquireがuniqueFor/uniqueVia対応 | E-08 L32-43 | ○ |
| C-48 | releaseがforceRelease呼び出し | E-08 L51-58 | ○ |
| C-49 | getKeyがuniqueId/displayName対応 | E-08 L66-77 | ○ |

### Queueableトレイト（UT-BUS-156 - UT-BUS-176）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | onConnection/onQueue/onGroupがenum_value対応 | E-09 L100-133 | ○ |
| C-51 | withDeduplicatorがSerializableClosure対応 | E-09 L143-150 | ○ |
| C-52 | allOnConnection/allOnQueueがconnection+chainConnection設定 | E-09 L158-182 | ○ |
| C-53 | chain/prependToChain/appendToChainがChainedBatch.prepareNestedBatches使用 | E-09 L253-293 | ○ |
| C-54 | dispatchNextJobInChainがunserialize + dispatch | E-09 L323-337 | ○ |
| C-55 | assertHasChain/assertDoesntHaveChainがPHPUnit使用 | E-09 L358-385 | ○ |

### Batchableトレイト（UT-BUS-177 - UT-BUS-185）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | batchがfakeBatch優先、次にrepository.find | E-10 L31-40 | ○ |
| C-57 | batchingがcancelled判定含む | E-10 L46-52 | ○ |
| C-58 | withFakeBatchがBatchFake生成 | E-10 L82-107 | ○ |

### ChainedBatchクラス（UT-BUS-186 - UT-BUS-194）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-59 | コンストラクタがprepareNestedBatches呼び出し | E-11 L43-52 | ○ |
| C-60 | prepareNestedBatchesがPendingBatch->ChainedBatch変換 | E-11 L60-68 | ○ |
| C-61 | handleがtoPendingBatch + attachRemainderOfChain + dispatch | E-11 L75-80 | ○ |
| C-62 | toPendingBatchがDispatcher.batch使用 | E-11 L87-111 | ○ |
| C-63 | attachRemainderOfChainToEndOfBatchがfinally登録 | E-11 L119-143 | ○ |

### UpdatedBatchJobCountsクラス（UT-BUS-195 - UT-BUS-199）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-64 | コンストラクタがデフォルト値対応 | E-12 L27-31 | ○ |
| C-65 | allJobsHaveRanExactlyOnce = (pendingJobs - failedJobs) === 0 | E-12 L38-41 | ○ |

### BusServiceProviderクラス（UT-BUS-200 - UT-BUS-206）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | registerがDispatcherシングルトン登録 | E-13 L21-27 | ○ |
| C-67 | registerBatchServicesがdriver判定でrepository選択 | E-13 L45-88 | ○ |
| C-68 | providesがサービス一覧返却 | E-13 L96-105 | ○ |

### イベントクラス（UT-BUS-207 - UT-BUS-209）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | BatchDispatchedがBatchプロパティ保持 | E-15 L14-17 | ○ |
| C-70 | BatchFinishedがBatchプロパティ保持 | E-16 L14-17 | ○ |
| C-71 | BatchCanceledがBatchプロパティ保持 | E-17 L14-17 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし。全てのテストケースはソースコードから直接導出されています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全てのテストケースはソースコードの実装に基づいて生成されています
- 以下の箇所は特に注意深いレビューを推奨:
  - **Dispatcher.dispatchToQueue**: RuntimeException発生条件の境界ケース
  - **Batch.recordFailedJob**: 複数コールバックの実行順序と条件分岐
  - **DatabaseBatchRepository.updateAtomicValues**: 並行性とトランザクション処理
  - **DynamoBatchRepository**: 結果整合性モデルとConsistentRead戦略

## 6) レビュアーチェックリスト（最小）
- [ ] Dispatcherのキュー/同期ディスパッチ分岐ロジックのテストケースが網羅的か確認
- [ ] Batchのコールバック実行順序（progress -> then -> finally）のテストケースを確認
- [ ] DatabaseBatchRepository/DynamoBatchRepositoryのアトミック更新テストケースを確認
- [ ] UniqueLockのロック取得/解放のエッジケースを確認
- [ ] ChainedBatchのネストバッチ処理テストケースを確認
- [ ] 全てのインターフェースメソッドが実装クラスでテストされているか確認
