---
generated_at: 2026-02-24 17:50:00
metrics:
  claims_total: 73
  claims_with_evidence: 73
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート: util.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：73 / 73、根拠なし：0
- 優先レビュー（高）
  1. 該当なし - すべてのテストケースに根拠あり

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

- E-01: `packages/util/src/array.ts` - findLast関数（配列の末尾から条件検索）
- E-02: `packages/util/src/binary.ts` - Binary名前空間（二分探索・挿入）
- E-03: `packages/util/src/encode.ts` - base64Encode, base64Decode, hash, checksum, sampledChecksum関数
- E-04: `packages/util/src/error.ts` - NamedError抽象クラス（カスタムエラー生成）
- E-05: `packages/util/src/fn.ts` - fn関数（Zodスキーマによるバリデーション付き関数ラッパー）
- E-06: `packages/util/src/identifier.ts` - Identifier名前空間（昇順・降順ID生成）
- E-07: `packages/util/src/iife.ts` - iife関数（即時実行関数ラッパー）
- E-08: `packages/util/src/lazy.ts` - lazy関数（遅延評価・キャッシュ）
- E-09: `packages/util/src/path.ts` - getFilename, getDirectory, getFileExtension, getFilenameTruncated, truncateMiddle関数
- E-10: `packages/util/src/retry.ts` - retry関数（リトライ処理）、RetryOptionsインターフェース
- E-11: `packages/util/src/slug.ts` - Slug名前空間（ランダムスラッグ生成）
- E-12: `packages/util/package.json` - モジュール定義（TypeScript, Zod依存）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | findLast関数が配列末尾から検索する | E-01 | ○ |
| C-02 | findLast関数が最後の合致要素を返す | E-01 | ○ |
| C-03 | findLast関数が合致なしでundefinedを返す | E-01 | ○ |
| C-04 | findLast関数が空配列でundefinedを返す | E-01 | ○ |
| C-05 | findLast関数が単一要素配列で動作する | E-01 | ○ |
| C-06 | Binary.searchが要素発見時にfound=trueを返す | E-02 | ○ |
| C-07 | Binary.searchが要素未発見時に挿入位置を返す | E-02 | ○ |
| C-08 | Binary.searchが空配列でindex=0を返す | E-02 | ○ |
| C-09 | Binary.searchが先頭要素を検索可能 | E-02 | ○ |
| C-10 | Binary.searchが末尾要素を検索可能 | E-02 | ○ |
| C-11 | Binary.insertがソート順を維持して挿入する | E-02 | ○ |
| C-12 | Binary.insertが空配列に挿入可能 | E-02 | ○ |
| C-13 | Binary.insertが先頭に挿入可能 | E-02 | ○ |
| C-14 | Binary.insertが末尾に挿入可能 | E-02 | ○ |
| C-15 | base64EncodeがURL-safeなBase64を返す | E-03 | ○ |
| C-16 | base64Encodeがマルチバイト文字を処理可能 | E-03 | ○ |
| C-17 | base64Encodeが空文字列を処理可能 | E-03 | ○ |
| C-18 | base64DecodeがBase64をデコード可能 | E-03 | ○ |
| C-19 | base64Encode/Decodeの往復変換が可能 | E-03 | ○ |
| C-20 | hash関数がSHA-256ハッシュを生成する | E-03 | ○ |
| C-21 | hash関数が別アルゴリズムを指定可能 | E-03 | ○ |
| C-22 | hash関数が決定的な結果を返す | E-03 | ○ |
| C-23 | checksum関数がBase36形式を返す | E-03 | ○ |
| C-24 | checksum関数が空文字列でundefinedを返す | E-03 | ○ |
| C-25 | checksum関数が決定的な結果を返す | E-03 | ○ |
| C-26 | sampledChecksumがlimit以下で通常checksumを返す | E-03 | ○ |
| C-27 | sampledChecksumがlimit超でサンプリングする | E-03 | ○ |
| C-28 | sampledChecksumが空文字列でundefinedを返す | E-03 | ○ |
| C-29 | NamedError.createがカスタムエラークラスを生成 | E-04 | ○ |
| C-30 | NamedError.isInstanceがインスタンスを判定 | E-04 | ○ |
| C-31 | NamedError.isInstanceが異なる型を判定 | E-04 | ○ |
| C-32 | NamedError.toObjectがオブジェクトを返す | E-04 | ○ |
| C-33 | NamedError.schemaがZodスキーマを返す | E-04 | ○ |
| C-34 | NamedError.UnknownがUnknownErrorを作成 | E-04 | ○ |
| C-35 | fn関数がZodバリデーション付き関数を作成 | E-05 | ○ |
| C-36 | fn関数がバリデーションエラーをスロー | E-05 | ○ |
| C-37 | fn.forceがバリデーションをスキップ | E-05 | ○ |
| C-38 | fn.schemaがスキーマを返す | E-05 | ○ |
| C-39 | Identifier.ascendingが26文字IDを生成 | E-06 | ○ |
| C-40 | Identifier.ascendingがユニークIDを生成 | E-06 | ○ |
| C-41 | Identifier.ascendingがソート可能なIDを生成 | E-06 | ○ |
| C-42 | Identifier.descendingが26文字IDを生成 | E-06 | ○ |
| C-43 | Identifier.descendingが逆順ソート可能 | E-06 | ○ |
| C-44 | Identifier.createがタイムスタンプ指定可能 | E-06 | ○ |
| C-45 | iife関数が即時実行する | E-07 | ○ |
| C-46 | iife関数が複雑なロジックを実行可能 | E-07 | ○ |
| C-47 | lazy関数が初回呼び出しで実行する | E-08 | ○ |
| C-48 | lazy関数がキャッシュを返す | E-08 | ○ |
| C-49 | lazy関数がundefinedをキャッシュ | E-08 | ○ |
| C-50 | getFilenameがファイル名を抽出 | E-09 | ○ |
| C-51 | getFilenameがWindowsパスを処理 | E-09 | ○ |
| C-52 | getFilenameがundefinedで空文字列を返す | E-09 | ○ |
| C-53 | getFilenameが末尾スラッシュを処理 | E-09 | ○ |
| C-54 | getDirectoryがディレクトリを抽出 | E-09 | ○ |
| C-55 | getDirectoryがundefinedで空文字列を返す | E-09 | ○ |
| C-56 | getFileExtensionが拡張子を抽出 | E-09 | ○ |
| C-57 | getFileExtensionが複数ドットを処理 | E-09 | ○ |
| C-58 | getFileExtensionがundefinedで空文字列を返す | E-09 | ○ |
| C-59 | getFilenameTruncatedがファイル名を省略 | E-09 | ○ |
| C-60 | getFilenameTruncatedが拡張子を保持 | E-09 | ○ |
| C-61 | getFilenameTruncatedが短いファイル名をそのまま返す | E-09 | ○ |
| C-62 | truncateMiddleが中央を省略 | E-09 | ○ |
| C-63 | truncateMiddleが短い文字列をそのまま返す | E-09 | ○ |
| C-64 | retry関数が成功時に結果を返す | E-10 | ○ |
| C-65 | retry関数がリトライ後に成功する | E-10 | ○ |
| C-66 | retry関数が最大試行後にエラーをスロー | E-10 | ○ |
| C-67 | retry関数がretryIfでリトライを制御 | E-10 | ○ |
| C-68 | retry関数がネットワークエラーを検出 | E-10 | ○ |
| C-69 | retry関数が遅延オプションを適用 | E-10 | ○ |
| C-70 | retry関数がmaxDelayを超えない | E-10 | ○ |
| C-71 | Slug.createがスラッグを生成 | E-11 | ○ |
| C-72 | Slug.createがハイフン区切りを生成 | E-11 | ○ |
| C-73 | Slug.createが定義リストから値を使用 | E-11 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし - すべてのテストケースはソースコードの実装に基づいて作成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードの実装に直接基づいている
- 注意点:
  - `Identifier`モジュールは内部状態（lastTimestamp, counter）を持つため、並行実行時の挙動に注意が必要
  - `retry`関数のテストでは実際の遅延が発生するため、モック化を検討
  - `hash`関数は非同期処理（crypto.subtle.digest）を使用

## 6) レビュアーチェックリスト（最小）
- [ ] 各ファイルのpublic関数がテスト対象として網羅されているか確認
- [ ] 正常系・異常系・境界値の観点が各関数に適用されているか確認
- [ ] 優先度の設定が適切か確認（金額計算・認証関連は高優先度）
- [ ] テストケースの入力値と期待結果が明確に定義されているか確認
- [ ] Binary.search/insertのソート順維持のテストが十分か確認
- [ ] retry関数の遅延・リトライ条件のテストが適切か確認
- [ ] NamedErrorのZodスキーマ連携が適切にテストされているか確認
