---
generated_at: 2026-02-21 10:30:00
metrics:
  claims_total: 49
  claims_with_evidence: 49
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：random.csv

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `src/random/secure.php` - SecureRandom名前空間の関数定義（float, int, string）
- E-02: `src/random/pseudo.php` - PseudoRandom名前空間の関数定義（float, int, string）
- E-03: `src/random/private.php` - _Private名前空間のヘルパー関数（random_string）と定数定義
- E-04: `tests/random/RandomTestTrait.php` - 共通テストトレイト（テスト観点・境界値の参照）
- E-05: `tests/random/SecureRandomTest.php` - SecureRandomのテストクラス
- E-06: `tests/random/PseudoRandomTest.php` - PseudoRandomのテストクラス
- E-07: `src/math/constants.php` - INT53_MAX, INT32_MAX, INT32_MINの定数定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | SecureRandom\float()は0.0以上1.0未満の暗号学的に安全な乱数を返却 | E-01（21-23行目）、E-04（36-54行目） | ○ |
| C-02 | SecureRandom\float()は分布の下限（0.1以下）を含む | E-04（52行目） | ○ |
| C-03 | SecureRandom\float()は分布の上限（0.9以上）を含む | E-04（53行目） | ○ |
| C-04 | SecureRandom\int()は指定範囲内の整数を返却 | E-01（31-42行目）、E-04（76-95行目） | ○ |
| C-05 | SecureRandom\int()のデフォルト引数はPHP_INT_MIN/MAX | E-01（32-33行目） | ○ |
| C-06 | SecureRandom\int()は$min=$max=0で0を返却 | E-04（57行目: tuple(0, 0)） | ○ |
| C-07 | SecureRandom\int()は$min=$maxで同一値を返却 | E-01（35-40行目: invariant条件） | ○ |
| C-08 | SecureRandom\int()はINT32範囲で動作 | E-04（61行目）、E-07 | ○ |
| C-09 | SecureRandom\int()は負の範囲で動作 | E-04（63行目） | ○ |
| C-10 | SecureRandom\int()は負から正の範囲で動作 | E-04（64行目） | ○ |
| C-11 | SecureRandom\int()は$min>$maxでInvariantException | E-01（35-40行目）、E-04（97-110行目） | ○ |
| C-12 | SecureRandom\int()は$min=-1,$max=-5でInvariantException | E-04（100行目） | ○ |
| C-13 | SecureRandom\int()は$min=INT32_MAX,$max=0でInvariantException | E-04（101行目） | ○ |
| C-14 | SecureRandom\int()は$min=PHP_INT_MAX,$max=PHP_INT_MINでInvariantException | E-04（102行目） | ○ |
| C-15 | SecureRandom\string()は指定長の文字列を返却 | E-01（50-59行目）、E-04（123-131行目） | ○ |
| C-16 | SecureRandom\string()は指定アルファベットからのみ構成 | E-04（137-144行目） | ○ |
| C-17 | SecureRandom\string()はBASE64アルファベットで動作 | E-03（70-71行目）、E-04（112-118行目） | ○ |
| C-18 | SecureRandom\string()はBASE64_URLアルファベットで動作 | E-03（72-73行目）、E-04（112-118行目） | ○ |
| C-19 | SecureRandom\string()はALPHANUMERICアルファベットで動作 | E-04（116行目） | ○ |
| C-20 | SecureRandom\string()は$length=0で空文字列を返却 | E-03（21-23行目） | ○ |
| C-21 | SecureRandom\string()は$length=1で1文字を返却 | E-04（126行目） | ○ |
| C-22 | SecureRandom\string()は全アルファベット文字を各位置で出現させる | E-04（150-167行目） | ○ |
| C-23 | PseudoRandom\float()は0.0以上1.0未満の擬似乱数を返却 | E-02（21-23行目）、E-04（36-54行目） | ○ |
| C-24 | PseudoRandom\float()は分布の下限を含む | E-04（52行目） | ○ |
| C-25 | PseudoRandom\float()は分布の上限を含む | E-04（53行目） | ○ |
| C-26 | PseudoRandom\int()は指定範囲内の整数を返却 | E-02（31-42行目）、E-04（76-95行目） | ○ |
| C-27 | PseudoRandom\int()のデフォルト引数はPHP_INT_MIN/MAX | E-02（32-33行目） | ○ |
| C-28 | PseudoRandom\int()は$min=$max=0で0を返却 | E-04（57行目） | ○ |
| C-29 | PseudoRandom\int()はINT32範囲で動作 | E-04（61行目） | ○ |
| C-30 | PseudoRandom\int()は負の範囲で動作 | E-04（63行目） | ○ |
| C-31 | PseudoRandom\int()は負から正の範囲で動作 | E-04（64行目） | ○ |
| C-32 | PseudoRandom\int()は$min>$maxでInvariantException | E-02（35-40行目）、E-04（97-110行目） | ○ |
| C-33 | PseudoRandom\int()は$min=-1,$max=-5でInvariantException | E-04（100行目） | ○ |
| C-34 | PseudoRandom\int()は$min=INT32_MAX,$max=0でInvariantException | E-04（101行目） | ○ |
| C-35 | PseudoRandom\int()は$min=PHP_INT_MAX,$max=PHP_INT_MINでInvariantException | E-04（102行目） | ○ |
| C-36 | PseudoRandom\string()は指定長の文字列を返却 | E-02（51-58行目） | ○ |
| C-37 | PseudoRandom\string()は指定アルファベットからのみ構成 | E-02（51-58行目）、E-04（137-144行目） | ○ |
| C-38 | PseudoRandom\string()は$length=0で空文字列を返却 | E-03（21-23行目） | ○ |
| C-39 | PseudoRandom\string()は$length=1で1文字を返却 | E-04（126行目） | ○ |
| C-40 | _Private\random_string()は指定長の文字列を生成 | E-03（15-68行目） | ○ |
| C-41 | _Private\random_string()はカスタムアルファベットで動作 | E-03（24-66行目） | ○ |
| C-42 | _Private\random_string()は$length=0で空文字列を返却 | E-03（21-23行目） | ○ |
| C-43 | _Private\random_string()は$length=1で1文字を返却 | E-03（21行目以降のロジック） | ○ |
| C-44 | _Private\random_string()は2文字のアルファベットで動作 | E-03（28行目: bits >= 1） | ○ |
| C-45 | _Private\random_string()は負の$lengthでInvariantException | E-03（20行目） | ○ |
| C-46 | _Private\random_string()は1文字アルファベットでInvariantException | E-03（31-34行目: bits >= 1 && bits <= 56） | ○ |
| C-47 | _Private\random_string()は空アルファベットでInvariantException | E-03（27-34行目） | ○ |
| C-48 | ALPHABET_BASE64定数は65文字 | E-03（70-71行目） | ○ |
| C-49 | ALPHABET_BASE64_URL定数は64文字 | E-03（72-73行目） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：すべてのテストケースがソースコードまたは既存テストコードに基づいて生成されている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースに明確なソースコード根拠が存在
- 注意点：
  - 暗号学的安全性（SecureRandom）と擬似乱数（PseudoRandom）の違いはコメントで明記されているが、実際の暗号学的安全性はHHVM/PHPランタイムの実装に依存
  - PseudoRandom\string()は内部でSecureRandom\string()を呼び出している点に注意（E-02 57行目）

## 6) レビュアーチェックリスト（最小）
- [ ] SecureRandom関数のテストケースが暗号学的安全性の観点を含んでいるか確認
- [ ] PseudoRandom関数のテストケースが「暗号用途には不適切」という制約を考慮しているか確認
- [ ] 境界値テスト（$min=$max, $length=0, 負の値など）が網羅されているか確認
- [ ] InvariantExceptionのスロー条件がソースコードのinvariant文と一致しているか確認
- [ ] アルファベット定数（BASE64, BASE64_URL）の文字数がソースコードと一致しているか確認
