---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 245
  claims_with_evidence: 237
  claims_without_evidence: 8
confidence_derived: 0.97
---

# 根拠レポート：util.csv

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：237 / 245、根拠なし：8
- 優先レビュー（高）
  1. **AsyncQueue hooks動作テスト**：hooks（beforeAdd, added, beforeStart, started, result）の詳細なテストケースが不足。内部のhookコールバック連鎖は複雑で、テストケースではhookの基本動作のみを前提としている
  2. **smartGrouping/deterministicGroupingの詳細テスト**：groupConfigs/maxSize/minSize等の複雑な組み合わせテストが不足
  3. **deprecation.jsの網羅的テスト**：createDeprecation以外のdeprecatedArray/deprecatedPropertyなどの高度な機能のテストケースが未生成

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

- E-01: `lib/util/ArrayQueue.js` - ArrayQueueクラスの実装
- E-02: `lib/util/Queue.js` - Queueクラスの実装
- E-03: `lib/util/TupleQueue.js` - TupleQueueクラスの実装
- E-04: `lib/util/AsyncQueue.js` - AsyncQueue/AsyncQueueEntryクラスの実装
- E-05: `lib/util/SortableSet.js` - SortableSetクラスの実装
- E-06: `lib/util/LazySet.js` - LazySetクラスの実装
- E-07: `lib/util/LazyBucketSortedSet.js` - LazyBucketSortedSetクラスの実装
- E-08: `lib/util/TupleSet.js` - TupleSetクラスの実装
- E-09: `lib/util/StackedMap.js` - StackedMapクラスの実装
- E-10: `lib/util/StackedCacheMap.js` - StackedCacheMapクラスの実装
- E-11: `lib/util/cleverMerge.js` - cleverMerge/cachedCleverMerge等の関数群
- E-12: `lib/util/comparators.js` - 比較関数群（compareIds, compareStringsNumeric等）
- E-13: `lib/util/identifier.js` - パス操作関数群（parseResource, getUndoPath, contextify等）
- E-14: `lib/util/runtime.js` - ランタイム操作関数群（mergeRuntime, intersectRuntime等）とRuntimeSpecMap/RuntimeSpecSetクラス
- E-15: `lib/util/semver.js` - セマンティックバージョニング関数群（parseVersion, versionLt, satisfy等）
- E-16: `lib/util/compileBooleanMatcher.js` - ブールマッチャーコンパイル関数群
- E-17: `lib/util/Hash.js` - Hashの抽象基底クラス
- E-18: `lib/util/createHash.js` - ハッシュファクトリ関数
- E-19: `lib/util/Semaphore.js` - Semaphoreクラスの実装
- E-20: `lib/util/memoize.js` - memoize関数の実装
- E-21: `lib/util/numberHash.js` - FNV-1aハッシュの実装
- E-22: `lib/util/SetHelpers.js` - Set操作ヘルパー関数群
- E-23: `lib/util/ArrayHelpers.js` - Array操作ヘルパー関数群
- E-24: `lib/util/IterableHelpers.js` - Iterable操作ヘルパー関数群
- E-25: `lib/util/MapHelpers.js` - Map操作ヘルパー関数群
- E-26: `lib/util/StringXor.js` - StringXorクラスの実装
- E-27: `lib/util/WeakTupleMap.js` - WeakTupleMapクラスの実装
- E-28: `lib/util/AppendOnlyStackedSet.js` - AppendOnlyStackedSetクラスの実装
- E-29: `lib/util/objectToMap.js` - objectToMap関数の実装
- E-30: `lib/util/propertyAccess.js` - propertyAccess関数の実装
- E-31: `lib/util/propertyName.js` - propertyName関数、SAFE_IDENTIFIER、RESERVED_IDENTIFIERの定義
- E-32: `lib/util/nonNumericOnlyHash.js` - nonNumericOnlyHash関数の実装
- E-33: `lib/util/extractUrlAndGlobal.js` - extractUrlAndGlobal関数の実装
- E-34: `lib/util/removeBOM.js` - removeBOM関数の実装
- E-35: `lib/util/dataURL.js` - decodeDataURI関数の実装
- E-36: `lib/util/conventions.js` - camelCase/dashesCamelCase/cssExportConvention関数群
- E-37: `lib/util/URLAbsoluteSpecifier.js` - getScheme/getProtocol関数の実装
- E-38: `lib/util/processAsyncTree.js` - processAsyncTree関数の実装
- E-39: `lib/util/ParallelismFactorCalculator.js` - ParallelismFactorCalculatorクラスの実装
- E-40: `lib/util/findGraphRoots.js` - findGraphRoots関数の実装
- E-41: `lib/util/generateDebugId.js` - generateDebugId関数の実装
- E-42: `lib/util/source.js` - isSourceEqual関数の実装
- E-43: `lib/util/concatenate.js` - concatenate関数の実装
- E-44: `lib/util/deterministicGrouping.js` - deterministicGrouping関数の実装
- E-45: `lib/util/smartGrouping.js` - smartGrouping関数の実装
- E-46: `lib/util/binarySearchBounds.js` - バイナリサーチ関数群の実装
- E-47: `lib/util/deprecation.js` - createDeprecation関数等の実装
- E-48: `lib/util/magicComment.js` - magicComment関数群の実装

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | ArrayQueue: constructorで空キューが生成される | E-01 (L15-26) | ○ |
| C-002 | ArrayQueue: Iterableからの初期化が動作する | E-01 (L15: items ? [...items] : []) | ○ |
| C-003 | ArrayQueue: enqueueでlengthが増加する | E-01 (L49-51, L32-34) | ○ |
| C-004 | ArrayQueue: FIFO順序でdequeueされる | E-01 (L57-68) | ○ |
| C-005 | ArrayQueue: 空キューからのdequeueでundefined | E-01 (L58-59) | ○ |
| C-006 | ArrayQueue: 1件キューからdequeueでpopが使われる | E-01 (L60) | ○ |
| C-007 | ArrayQueue: 16件以上でリスト反転ロジックが動作する | E-01 (L61-66) | ○ |
| C-008 | ArrayQueue: deleteで要素が削除される | E-01 (L75-83) | ○ |
| C-009 | ArrayQueue: 存在しない要素のdeleteでエラーなし | E-01 (L76-83) | ○ |
| C-010 | ArrayQueue: clearでキューが空になる | E-01 (L39-42) | ○ |
| C-011 | ArrayQueue: Symbol.iteratorで全要素取得 | E-01 (L85-101) | ○ |
| C-012 | Queue: 空キュー生成 | E-02 (L15-21) | ○ |
| C-013 | Queue: enqueueでlength増加 | E-02 (L36-38) | ○ |
| C-014 | Queue: 重複要素は無視される | E-02 (L20: Set) | ○ |
| C-015 | Queue: dequeueで要素取得・削除 | E-02 (L44-49) | ○ |
| C-016 | Queue: 空dequeueでundefined | E-02 (L45-46) | ○ |
| C-017 | TupleQueue: enqueueでlength増加 | E-03 (L44-46) | ○ |
| C-018 | TupleQueue: dequeueでタプル取得 | E-03 (L52-67) | ○ |
| C-019 | TupleQueue: 空dequeueでundefined | E-03 (L54-63) | ○ |
| C-020 | SortableSet: コンストラクタ | E-05 (L23-47) | ○ |
| C-021 | SortableSet: addでキャッシュ無効化 | E-05 (L53-59) | ○ |
| C-022 | SortableSet: sortWithでソート | E-05 (L85-99) | ○ |
| C-023 | SortableSet: size<=1でソートスキップ | E-05 (L86) | ○ |
| C-024 | SortableSet: sortでデフォルトソート | E-05 (L101-104) | ○ |
| C-025 | SortableSet: getFromCacheキャッシュヒット | E-05 (L112-125) | ○ |
| C-026 | SortableSet: getFromCacheキャッシュミス | E-05 (L112-125) | ○ |
| C-027 | SortableSet: getFromUnorderedCache | E-05 (L133-146) | ○ |
| C-028 | SortableSet: toJSON | E-05 (L171-173) | ○ |
| C-029 | LazySet: add | E-06 (L97-100) | ○ |
| C-030 | LazySet: addAll Iterable | E-06 (L106-127) | ○ |
| C-031 | LazySet: addAll LazySet | E-06 (L113-116) | ○ |
| C-032 | LazySet: addAll空LazySet | E-06 (L114) | ○ |
| C-033 | LazySet: has | E-06 (L172-175) | ○ |
| C-034 | LazySet: delete | E-06 (L141-144) | ○ |
| C-035 | LazySet: clear | E-06 (L129-135) | ○ |
| C-036 | LazySet: size | E-06 (L88-91) | ○ |
| C-037 | LazySet: serialize/deserialize | E-06 (L212-231) | ○ |
| C-038 | TupleSet: add | E-08 (L37-59) | ○ |
| C-039 | TupleSet: has true | E-08 (L65-83) | ○ |
| C-040 | TupleSet: has false | E-08 (L65-83) | ○ |
| C-041 | TupleSet: delete | E-08 (L89-109) | ○ |
| C-042 | TupleSet: iterator | E-08 (L114-182) | ○ |
| C-043 | StackedMap: set/get | E-09 (L57-118) | ○ |
| C-044 | StackedMap: undefinedセット | E-09 (L58: UNDEFINED_MARKER) | ○ |
| C-045 | StackedMap: delete | E-09 (L65-71) | ○ |
| C-046 | StackedMap: 親スタック検索 | E-09 (L77-93) | ○ |
| C-047 | StackedMap: createChild | E-09 (L159-161) | ○ |
| C-048 | StackedMap: asArray | E-09 (L135-138) | ○ |
| C-049 | StackedCacheMap: set/get | E-10 (L71-103) | ○ |
| C-050 | StackedCacheMap: addAll immutable | E-10 (L48-58) | ○ |
| C-051 | StackedCacheMap: addAll mutable | E-10 (L59-63) | ○ |
| C-052 | StackedCacheMap: deleteでError | E-10 (L79-81) | ○ |
| C-053 | StackedCacheMap: hasでError | E-10 (L87-91) | ○ |
| C-054 | StackedCacheMap: size | E-10 (L113-119) | ○ |
| C-055 | StackedCacheMap: clear | E-10 (L105-108) | ○ |
| C-056 | cleverMerge: 基本マージ | E-11 (L304-311) | ○ |
| C-057 | cleverMerge: オーバーライド | E-11 (L304-311) | ○ |
| C-058 | cleverMerge: undefined first | E-11 (L305-306) | ○ |
| C-059 | cleverMerge: undefined second | E-11 (L305) | ○ |
| C-060 | cleverMerge: 配列拡張 | E-11 (L549-574) | ○ |
| C-061 | cachedCleverMerge: キャッシュ | E-11 (L31-51) | ○ |
| C-062 | cachedSetProperty | E-11 (L60-86) | ○ |
| C-063 | removeOperations: DELETE | E-11 (L593-632) | ○ |
| C-064 | removeOperations: '...' | E-11 (L618-624) | ○ |
| C-065 | resolveByProperty | E-11 (L643-669) | ○ |
| C-066 | compareIds: 数値比較 | E-12 (L75-82) | ○ |
| C-067 | compareIds: 同値 | E-12 (L80-81) | ○ |
| C-068 | compareIds: 異型 | E-12 (L76-77) | ○ |
| C-069 | compareStringsNumeric: 数値認識 | E-12 (L210-274) | ○ |
| C-070 | compareStringsNumeric: 同値 | E-12 (L210-274) | ○ |
| C-071 | compareStringsNumeric: 空文字列 | E-12 (L210-274) | ○ |
| C-072 | compareNumbers | E-12 (L196-203) | ○ |
| C-073 | compareStrings | E-12 (L347-351) | ○ |
| C-074 | compareLocations: 行番号 | E-12 (L122-177) | ○ |
| C-075 | compareLocations: null | E-12 (L123-128) | ○ |
| C-076 | compareIterables | E-12 (L89-114) | ○ |
| C-077 | compareIterables: 長さ不一致 | E-12 (L103-106) | ○ |
| C-078 | concatComparators | E-12 (L414-435) | ○ |
| C-079 | compareSelect | E-12 (L452-476) | ○ |
| C-080 | keepOriginalOrder | E-12 (L488-500) | ○ |
| C-081 | TwoKeyWeakMap: set/get | E-12 (L366-402) | ○ |
| C-082 | TwoKeyWeakMap: 未登録キー | E-12 (L380-385) | ○ |
| C-083 | parseResource: 基本パース | E-13 (L338-389) | ○ |
| C-084 | parseResource: パスのみ | E-13 (L357-365) | ○ |
| C-085 | parseResource: エスケープ | E-13 (L340-353) | ○ |
| C-086 | getUndoPath: 基本 | E-13 (L436-461) | ○ |
| C-087 | getUndoPath: '..' | E-13 (L441-451) | ○ |
| C-088 | getUndoPath: enforceRelative | E-13 (L456-460) | ○ |
| C-089 | absoluteToRequest: 絶対パス変換 | E-13 (L29-70) | ○ |
| C-090 | absoluteToRequest: 非絶対パス | E-13 (L68-69) | ○ |
| C-091 | contextify | E-13 (L305-311) | ○ |
| C-092 | getRuntimeKey: undefined | E-14 (L89-90) | ○ |
| C-093 | getRuntimeKey: 文字列 | E-14 (L91) | ○ |
| C-094 | runtimeEqual: 同値 | E-14 (L141-164) | ○ |
| C-095 | runtimeEqual: 異値 | E-14 (L141-164) | ○ |
| C-096 | runtimeEqual: Set | E-14 (L141-164) | ○ |
| C-097 | mergeRuntime: 文字列 | E-14 (L191-225) | ○ |
| C-098 | mergeRuntime: undefined | E-14 (L192-195) | ○ |
| C-099 | mergeRuntime: 同値 | E-14 (L196-197) | ○ |
| C-100 | intersectRuntime | E-14 (L309-339) | ○ |
| C-101 | intersectRuntime: 空交差 | E-14 (L316-322) | ○ |
| C-102 | subtractRuntime | E-14 (L346-384) | ○ |
| C-103 | compareRuntime | E-14 (L171-184) | ○ |
| C-104 | forEachRuntime | E-14 (L62-73) | ○ |
| C-105 | keyToRuntime: '*' | E-14 (L99-100) | ○ |
| C-106 | keyToRuntime: 複合 | E-14 (L101-103) | ○ |
| C-107 | RuntimeSpecMap: set/get | E-14 (L454-515) | ○ |
| C-108 | RuntimeSpecMap: has | E-14 (L473-484) | ○ |
| C-109 | RuntimeSpecMap: delete | E-14 (L562-577) | ○ |
| C-110 | RuntimeSpecMap: provide | E-14 (L522-557) | ○ |
| C-111 | RuntimeSpecSet: add/has | E-14 (L659-698) | ○ |
| C-112 | parseVersion: 基本 | E-15 (L17-47) | ○ |
| C-113 | parseVersion: プレリリース | E-15 (L38-39) | ○ |
| C-114 | parseVersion: ビルドメタデータ | E-15 (L41-44) | ○ |
| C-115 | versionLt: true | E-15 (L56-97) | ○ |
| C-116 | versionLt: false同値 | E-15 (L56-97) | ○ |
| C-117 | versionLt: false大→小 | E-15 (L56-97) | ○ |
| C-118 | satisfy: true | E-15 (L377-529) | ○ |
| C-119 | satisfy: false | E-15 (L377-529) | ○ |
| C-120 | parseRange: キャレット | E-15 (L104-308) | ○ |
| C-121 | parseRange: チルダ | E-15 (L198-202) | ○ |
| C-122 | parseRange: ハイフン | E-15 (L257-291) | ○ |
| C-123 | rangeToString | E-15 (L315-368) | ○ |
| C-124 | compileBooleanMatcher: 全true | E-16 (L102-108) | ○ |
| C-125 | compileBooleanMatcher: 全false | E-16 (L102-108) | ○ |
| C-126 | compileBooleanMatcher: 混在 | E-16 (L102-108) | ○ |
| C-127 | fromLists: 単一正 | E-16 (L115-130) | ○ |
| C-128 | fromLists: 単一負 | E-16 (L115-130) | ○ |
| C-129 | itemsToRegexp: 複数 | E-16 (L208-308) | ○ |
| C-130 | itemsToRegexp: 単一 | E-16 (L209-211) | ○ |
| C-131 | Hash: update AbstractError | E-17 (L35-39) | ○ |
| C-132 | Hash: digest AbstractError | E-17 (L61-65) | ○ |
| C-133 | createHash: xxhash64 | E-18 (L44-53) | ○ |
| C-134 | createHash: md4 | E-18 (L54-63) | ○ |
| C-135 | createHash: debug | E-18 (L40-43) | ○ |
| C-136 | createHash: 関数 | E-18 (L30-36) | ○ |
| C-137 | createHash: デフォルト | E-18 (L77-90) | ○ |
| C-138 | Semaphore: acquire即時 | E-19 (L26-33) | ○ |
| C-139 | Semaphore: acquire待機 | E-19 (L31-33) | ○ |
| C-140 | Semaphore: release | E-19 (L35-40) | ○ |
| C-141 | Semaphore: release待機者 | E-19 (L42-48) | ○ |
| C-142 | memoize: 初回実行 | E-20 (L17-34) | ○ |
| C-143 | memoize: キャッシュ | E-20 (L17-34) | ○ |
| C-144 | memoize: メモリ解放 | E-20 (L31) | ○ |
| C-145 | numberHash: 基本 | E-21 (L90-94) | ○ |
| C-146 | numberHash: 決定性 | E-21 (L47-56, L64-71) | ○ |
| C-147 | numberHash: 分散性 | E-21 | ○ |
| C-148 | numberHash: 64bit切替 | E-21 (L91-94, L12) | ○ |
| C-149 | intersect: 基本 | E-22 (L14-37) | ○ |
| C-150 | intersect: 空 | E-22 (L15) | ○ |
| C-151 | intersect: 単一 | E-22 (L16) | ○ |
| C-152 | isSubset: true | E-22 (L46-52) | ○ |
| C-153 | isSubset: false | E-22 (L46-52) | ○ |
| C-154 | first: 基本 | E-22 (L71-74) | ○ |
| C-155 | first: 空 | E-22 (L72-73) | ○ |
| C-156 | combine | E-22 (L82-88) | ○ |
| C-157 | combine: 空 | E-22 (L83-84) | ○ |
| C-158 | equals: true | E-23 (L15-21) | ○ |
| C-159 | equals: false | E-23 (L15-21) | ○ |
| C-160 | equals: 長さ不一致 | E-23 (L16) | ○ |
| C-161 | equals: 空 | E-23 (L15-21) | ○ |
| C-162 | groupBy | E-23 (L30-46) | ○ |
| C-163 | groupBy: 空 | E-23 (L32) | ○ |
| C-164 | last | E-24 (L13-18) | ○ |
| C-165 | someInIterable: true | E-24 (L26-31) | ○ |
| C-166 | someInIterable: false | E-24 (L26-31) | ○ |
| C-167 | countIterable | E-24 (L38-42) | ○ |
| C-168 | getOrInsert: 既存 | E-25 (L25-34) | ○ |
| C-169 | getOrInsert: 新規 | E-25 (L25-34) | ○ |
| C-170 | StringXor: 初回add | E-26 (L48-60) | ○ |
| C-171 | StringXor: XOR演算 | E-26 (L48-79) | ○ |
| C-172 | StringXor: 自己打消し | E-26 (L48-79) | ○ |
| C-173 | StringXor: 長さ不一致 | E-26 (L63-71) | ○ |
| C-174 | StringXor: toString | E-26 (L88-91) | ○ |
| C-175 | StringXor: 空toString | E-26 (L90) | ○ |
| C-176 | WeakTupleMap: オブジェクトキー | E-27 (L60-67, L87-95) | ○ |
| C-177 | WeakTupleMap: プリミティブキー | E-27 (L60-67, L87-95) | ○ |
| C-178 | WeakTupleMap: has true | E-27 (L73-81) | ○ |
| C-179 | WeakTupleMap: has false | E-27 (L73-81) | ○ |
| C-180 | WeakTupleMap: delete | E-27 (L118-126) | ○ |
| C-181 | WeakTupleMap: provide新規 | E-27 (L101-112) | ○ |
| C-182 | WeakTupleMap: provideキャッシュ | E-27 (L107) | ○ |
| C-183 | WeakTupleMap: clear | E-27 (L131-136) | ○ |
| C-184 | AppendOnlyStackedSet: add/has | E-28 (L25-42) | ○ |
| C-185 | AppendOnlyStackedSet: createChild | E-28 (L52-54) | ○ |
| C-186 | AppendOnlyStackedSet: clear | E-28 (L44-47) | ○ |
| C-187 | objectToMap: 基本 | E-29 (L13-15) | ○ |
| C-188 | objectToMap: 空 | E-29 (L13-15) | ○ |
| C-189 | propertyAccess: ドット | E-30 (L15-28) | ○ |
| C-190 | propertyAccess: 数値 | E-30 (L19) | ○ |
| C-191 | propertyAccess: 予約語 | E-30 (L21-23) | ○ |
| C-192 | propertyAccess: start | E-30 (L15) | ○ |
| C-193 | propertyName: 安全 | E-31 (L69-74) | ○ |
| C-194 | propertyName: 予約語 | E-31 (L69-74) | ○ |
| C-195 | propertyName: 特殊文字 | E-31 (L69-74) | ○ |
| C-196 | nonNumericOnlyHash: 数字のみ | E-32 (L15-22) | ○ |
| C-197 | nonNumericOnlyHash: 変換不要 | E-32 (L18) | ○ |
| C-198 | nonNumericOnlyHash: 長さ0 | E-32 (L16) | ○ |
| C-199 | extractUrlAndGlobal: 基本 | E-33 (L12-18) | ○ |
| C-200 | extractUrlAndGlobal: @なしError | E-33 (L14-16) | ○ |
| C-201 | extractUrlAndGlobal: 先頭@Error | E-33 (L14) | ○ |
| C-202 | removeBOM: 文字列BOM | E-34 (L12-14) | ○ |
| C-203 | removeBOM: Buffer BOM | E-34 (L15-21) | ○ |
| C-204 | removeBOM: BOMなし | E-34 (L23-24) | ○ |
| C-205 | decodeDataURI: base64 | E-35 (L16-25) | ○ |
| C-206 | decodeDataURI: 非base64 | E-35 (L29-33) | ○ |
| C-207 | decodeDataURI: 不正URI | E-35 (L17-18) | ○ |
| C-208 | camelCase: ケバブ | E-36 (L57-79) | ○ |
| C-209 | camelCase: 空 | E-36 (L60-62) | ○ |
| C-210 | camelCase: 1文字 | E-36 (L64-66) | ○ |
| C-211 | dashesCamelCase | E-36 (L125-126) | ○ |
| C-212 | cssExportConvention: camel-case | E-36 (L86-118) | ○ |
| C-213 | cssExportConvention: as-is | E-36 (L112-115) | ○ |
| C-214 | getScheme: 基本 | E-37 (L30-73) | ○ |
| C-215 | getScheme: undefinedリターン | E-37 (L36-38) | ○ |
| C-216 | getScheme: Windowsパス除外 | E-37 (L59-71) | ○ |
| C-217 | getProtocol | E-37 (L80-83) | ○ |
| C-218 | processAsyncTree: 基本 | E-38 (L17-66) | ○ |
| C-219 | processAsyncTree: 空 | E-38 (L19) | ○ |
| C-220 | processAsyncTree: エラー | E-38 (L38-44) | ○ |
| C-221 | processAsyncTree: push | E-38 (L27-33) | ○ |
| C-222 | ParallelismFactorCalculator: 基本 | E-39 (L12-68) | ○ |
| C-223 | ParallelismFactorCalculator: ゼロ幅 | E-39 (L27) | ○ |
| C-224 | AsyncQueue: add基本 | E-04 (L140-185) | ○ |
| C-225 | AsyncQueue: 重複アイテム | E-04 (L151-163) | ○ |
| C-226 | AsyncQueue: 停止後add | E-04 (L141) | ○ |
| C-227 | AsyncQueue: stop | E-04 (L230-245) | ○ |
| C-228 | AsyncQueue: 状態チェック | E-04 (L272-296) | ○ |
| C-229 | AsyncQueue: invalidate | E-04 (L191-200) | ○ |
| C-230 | AsyncQueue: clear | E-04 (L401-408) | ○ |
| C-231 | AsyncQueue: increaseParallelism | E-04 (L250-258) | ○ |
| C-232 | AsyncQueue: decreaseParallelism | E-04 (L263-266) | ○ |
| C-233 | LazyBucketSortedSet: add/popFirst | E-07 (L68-158) | ○ |
| C-234 | LazyBucketSortedSet: delete unsorted | E-07 (L101-113) | ○ |
| C-235 | LazyBucketSortedSet: 空popFirst | E-07 (L128) | ○ |
| C-236 | LazyBucketSortedSet: startUpdate | E-07 (L164-222) | ○ |
| C-237 | generateDebugId: UUID形式 | E-41 (L15-33) | ○ |
| C-238 | generateDebugId: 決定性 | **根拠なし** | △ |
| C-239 | isSourceEqual: 同一参照 | E-42 (L37) | ○ |
| C-240 | isSourceEqual: 同値 | E-42 (L18-29) | ○ |
| C-241 | isSourceEqual: 異値 | E-42 (L18-29) | ○ |
| C-242 | concatenate: 基本 | E-43 | ○ |
| C-243 | findGraphRoots: 基本 | E-40 (L63-211) | ○ |
| C-244 | findGraphRoots: 1件 | E-40 (L72) | ○ |
| C-245 | findGraphRoots: 循環 | E-40 (L120-143) | ○ |

## 4) 不足情報（Unknown / Missing）
- **AsyncQueue hooks動作の詳細テスト（C-224-C-232に関連）**: hooks（beforeAdd, beforeStart, result等）の各hook内でのエラーハンドリングパスの詳細テストは、hookの複雑なコールバック連鎖のため個別テストケースとして明示化していない。実際のテスト実装時にはhookのtap/callAsync動作を含めた統合テストが必要。
  - 候補: AsyncSeriesHook/SyncHookのモック / hooks.beforeAdd.callAsyncのエラーパス / hooks.result.callAsyncのエラーパス
- **generateDebugIdの決定性（C-238）**: コード上はcreateHash('xxhash64')を使用しているため決定的だが、xxhash64の実装の決定性については直接確認していない。
  - 候補: xxhash64の仕様確認 / 実際の実行テスト
- **smartGrouping/deterministicGroupingの複雑な組み合わせ**: これらのファイルは複雑なアルゴリズムを含み、テストケースは基本的な動作のみをカバー。エッジケースの網羅が必要。
  - 候補: 境界条件のバリエーション / minSize/maxSizeの組み合わせ
- **deprecation.jsの高度な機能**: createDeprecation以外の、deprecatedArray/deprecatedPropertyなどのProxy/Array操作をラップした機能のテストケースが未生成。
  - 候補: deprecatedArrayのイテレーション / deprecatedPropertyのgetter/setter
- **binarySearchBoundsの生成コードテスト**: compileBoundsSearch内でnew Function()を使って動的にコードを生成しているが、生成されたコードの正確性テストは基本的な動作確認に留まる。
  - 候補: ge/gt/lt/le/eqの各関数の境界値テスト
- **serialization.js / internalSerializables.js / registerExternalSerializer.js / makeSerializable.js**: シリアライゼーション関連ファイルはwebpack内部の深い依存関係を持ち、単体テストが困難なため未対応。
  - 候補: モック依存関係での単体テスト / 統合テストとしての実装
- **fs.js / create-schema-validation.js / chainedImports.js / traverseDestructuringAssignmentProperties.js / extractSourceMap.js**: これらのファイルは外部依存度が高く、または構文解析・ファイルシステム操作のラッパーであるため、テストケース生成を省略。
  - 候補: 統合テストでのカバレッジ確認

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 大半のクラス/関数テストケース（データ構造、ユーティリティ関数）は実装コードから直接的に導出されており信頼性が高い
- 1: 中リスク - AsyncQueue hooks連鎖テスト、smartGrouping/deterministicGroupingの複雑なロジックテスト。これらはコードが複雑で、テストケースが基本動作のみをカバーしている可能性がある
- 1: 中リスク - シリアライゼーション関連（serialization.js等）やファイルシステム関連（fs.js）のテストケースが未生成。ただしこれらは単体テストが困難な外部依存度の高いコードである
- 0: 低リスク - semver、comparators、identifierなどの純粋関数テストは、入出力が明確でコードから正確にテストケースを導出できている

## 6) レビュアーチェックリスト（最小）
- [ ] AsyncQueueのhooksに関するテストケース（C-224-C-232周辺）が実際のhookコールバック連鎖をカバーしているか確認
- [ ] smartGrouping/deterministicGroupingのエッジケース（minSize/maxSizeの境界）が十分にテストされているか確認
- [ ] シリアライゼーション関連ファイル（serialization.js, makeSerializable.js等）のテストケース追加の必要性を検討
- [ ] semver.jsのsatisfy関数で複合範囲（||, &&等）のテストケースが十分か確認
- [ ] binarySearchBoundsの各関数（ge, gt, lt, le, eq）の境界値テストが必要か確認
- [ ] deprecation.jsのProxy/Arrayラッパー機能のテストケース追加を検討
