---
generated_at: 2026-02-21 23:30:00
metrics:
  claims_total: 78
  claims_with_evidence: 78
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：keyset.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：78 / 78、根拠なし：0
- 優先レビュー（高）
  1. 全テストケースはソースコードから直接導出されており、根拠不足の項目なし
  2. invariant違反のテストケースは実際のコード内のinvariant文に基づく
  3. 非同期関数のテストケースはasync.phpの実装に基づく

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

- E-01: `src/keyset/order.php` - sort関数の実装
- E-02: `src/keyset/divide.php` - partition関数の実装
- E-03: `src/keyset/transform.php` - chunk, map, map_with_key, flatten関数の実装
- E-04: `src/keyset/async.php` - from_async, filter_async, map_async, partition_async関数の実装
- E-05: `src/keyset/introspect.php` - equal関数の実装
- E-06: `src/keyset/select.php` - diff, drop, filter, filter_nulls, filter_with_key, keys, intersect, take関数の実装
- E-07: `src/keyset/combine.php` - union関数の実装

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | sort関数がデフォルトで昇順ソートする | E-01: ksort使用（L35） | ○ |
| C-02 | sort関数がカスタムコンパレータをサポートする | E-01: uksort使用（L33） | ○ |
| C-03 | sort関数が空のkeysetを処理できる | E-01: keyset変換後にソート | ○ |
| C-04 | partition関数が述語に基づき分割する | E-02: foreach + predicate判定（L26-32） | ○ |
| C-05 | partition関数がタプルを返す | E-02: tuple($success, $failure)（L33） | ○ |
| C-06 | chunk関数が指定サイズで分割する | E-03: $ii % $size === 0（L36） | ○ |
| C-07 | chunk関数がsize<=0でinvariant違反 | E-03: invariant($size > 0, ...)（L31） | ○ |
| C-08 | map関数が各要素に関数を適用する | E-03: $value_func($value)（L60） | ○ |
| C-09 | map_with_key関数がキーと値を使用する | E-03: $value_func($key, $value)（L79） | ○ |
| C-10 | flatten関数がネストを解消する | E-03: 二重foreach（L101-104） | ○ |
| C-11 | from_async関数がAwaitableを待機する | E-04: await Vec\from_async（L27） | ○ |
| C-12 | filter_async関数が非同期述語でフィルタする | E-04: await Vec\map_async + 判定（L47-56） | ○ |
| C-13 | map_async関数が非同期変換を行う | E-04: await Vec\map_async（L74） | ○ |
| C-14 | partition_async関数が非同期分割を行う | E-04: await Vec\map_async + tuple（L94-106） | ○ |
| C-15 | equal関数が同じ要素で等しいと判定 | E-05: $keyset1 == $keyset2（L26） | ○ |
| C-16 | diff関数が差分を計算する | E-06: unset($first[...])（L36-40） | ○ |
| C-17 | diff関数が空の場合は早期リターンする | E-06: C\is_empty($first)チェック（L31,43） | ○ |
| C-18 | drop関数が先頭n件を除去する | E-06: $ii < $n → continue（L75-77） | ○ |
| C-19 | drop関数がn<0でinvariant違反 | E-06: invariant($n >= 0, ...)（L70） | ○ |
| C-20 | filter関数が述語でフィルタする | E-06: $value_predicate($value)（L99） | ○ |
| C-21 | filter関数がデフォルト述語を持つ | E-06: ?? \HH\Lib\_Private\boolval<>（L96） | ○ |
| C-22 | filter_nulls関数がnullを除去する | E-06: $value !== null（L118） | ○ |
| C-23 | filter_with_key関数がキーと値でフィルタする | E-06: $predicate($key, $value)（L140） | ○ |
| C-24 | keys関数がキーを抽出する | E-06: $result[] = $key（L156） | ○ |
| C-25 | intersect関数が共通要素を返す | E-06: C\contains_key + next_intersection（L184-185） | ○ |
| C-26 | intersect関数が空の入力で空を返す | E-06: !$first || !$second → keyset[]（L175-177） | ○ |
| C-27 | take関数が先頭n件を取得する | E-06: $ii === $n → break（L221-222） | ○ |
| C-28 | take関数がn=0で空を返す | E-06: if ($n === 0) return keyset[]（L212-214） | ○ |
| C-29 | take関数がn<0でinvariant違反 | E-06: invariant($n > 0, ...)（L215） | ○ |
| C-30 | union関数が複数keysetを結合する | E-07: foreach + $result[] = $value（L30-33） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - 全テストケースはソースコードの実装から直接導出
  - invariantの条件はコード内に明示的に記載されている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに基づいており、推測要素なし
- 0: 低リスク - invariant違反のテストケースはコード内の明示的なチェックに対応
- 0: 低リスク - 境界値テストケースはコードの分岐条件から導出

## 6) レビュアーチェックリスト（最小）
- [ ] sort関数のコンパレータ戻り値の型（num）が適切にテストされているか確認
- [ ] chunk関数の重複値による実際のチャンクサイズ縮小の挙動確認
- [ ] 非同期関数の並列実行時の例外伝播の考慮が必要か検討
- [ ] intersect関数の複数コンテナ時のパフォーマンス特性の確認
- [ ] filter関数のデフォルト述語（boolval）の挙動が期待通りか確認
