---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 88
  claims_with_evidence: 85
  claims_without_evidence: 3
confidence_derived: 0.97
---

# 根拠レポート：業務要件一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：85 / 88、根拠なし：3
- 優先レビュー（高）
  1. **BR-050（スローI/Oスロットリング）**：内部実装の閾値詳細が非公開API
  2. **BR-005（fork後のループ再初期化）**：プラットフォーム依存の制約事項が未文書化の可能性
  3. **BR-034（デタッチドプロセス・セッション管理）**：Windows/Unix間の動作差異の網羅性

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

- E-01: `include/uv.h` — メイン公開ヘッダ（全API宣言・型定義・マクロ定義）
- E-02: `include/uv/version.h` — バージョン定義（1.52.1-dev）
- E-03: `include/uv/errno.h` — エラーコード定義（UV_ERRNO_MAP）
- E-04: `include/uv/unix.h` — Unix系プラットフォーム固有型定義
- E-05: `include/uv/win.h` — Windows固有型定義
- E-06: `include/uv/threadpool.h` — スレッドプール内部構造（uv__work）
- E-07: `include/uv/tree.h` — 赤黒木実装（シグナル管理）
- E-08: `src/uv-common.c` — プラットフォーム共通実装（エラー処理・メモリ管理・バリデーション）
- E-09: `src/timer.c` — タイマー実装（最小ヒープ）
- E-10: `src/threadpool.c` — スレッドプール実装（ワーカースレッド・スロットリング）
- E-11: `src/fs-poll.c` — ファイルシステムポーリング実装
- E-12: `src/heap-inl.h` — バイナリ最小ヒープ実装
- E-13: `src/queue.h` — 侵入型循環双方向リスト実装
- E-14: `src/unix/core.c` — Unixイベントループコア（uv_run・I/Oウォッチャー管理）
- E-15: `src/unix/loop.c` — Unixループ初期化・終了
- E-16: `src/unix/stream.c` — Unixストリーム実装（読み書き・接続・EMFILE対策）
- E-17: `src/unix/tcp.c` — Unix TCP実装
- E-18: `src/unix/udp.c` — Unix UDP実装
- E-19: `src/unix/pipe.c` — Unixパイプ実装
- E-20: `src/unix/tty.c` — Unix TTY実装
- E-21: `src/unix/process.c` — Unixプロセス管理実装（fork/exec・posix_spawn）
- E-22: `src/unix/signal.c` — Unixシグナル処理実装
- E-23: `src/unix/fs.c` — Unixファイルシステム操作実装（INIT/PATH/POST パターン）
- E-24: `src/unix/getaddrinfo.c` — Unix DNS正引き実装
- E-25: `src/unix/getnameinfo.c` — Unix DNS逆引き実装
- E-26: `src/unix/thread.c` — Unixスレッド・同期プリミティブ実装
- E-27: `src/unix/async.c` — Unix非同期通知実装
- E-28: `src/unix/poll.c` — UnixFDポーリング実装
- E-29: `src/unix/loop-watcher.c` — Unixループウォッチャー実装（prepare/check/idle）
- E-30: `src/unix/dl.c` — Unix動的ライブラリ実装
- E-31: `src/unix/linux.c` — Linux固有実装（epoll・io_uring・inotify）
- E-32: `src/unix/darwin.c` — macOS固有実装（kqueue）
- E-33: `src/unix/fsevents.c` — macOS FSEvents実装
- E-34: `src/random.c` — 乱数生成実装
- E-35: `src/inet.c` — IPv4/IPv6アドレス変換実装
- E-36: `src/idna.c` — 国際化ドメイン名処理
- E-37: `src/version.c` — バージョン情報実装
- E-38: `src/win/core.c` — WindowsイベントループIOCP実装
- E-39: `src/win/tcp.c` — Windows TCP実装
- E-40: `src/win/process.c` — Windowsプロセス管理実装

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | BR-001: イベントループの初期化・終了管理 | E-01, E-14, E-15 | ○ |
| C-02 | BR-002: イベントループの実行制御（3モード） | E-01, E-14 | ○ |
| C-03 | BR-003: ループ時刻管理（ミリ秒精度） | E-01, E-14 | ○ |
| C-04 | BR-004: ループオプション設定 | E-01, E-14, E-31 | ○ |
| C-05 | BR-005: fork後のループ再初期化 | E-01, E-15 | △ |
| C-06 | BR-006: ループメトリクス取得 | E-01, E-14 | ○ |
| C-07 | BR-007: ハンドルのライフサイクル管理 | E-01, E-14, E-08 | ○ |
| C-08 | BR-008: ハンドルの列挙・デバッグ | E-01, E-14 | ○ |
| C-09 | BR-009: ソケットバッファサイズ設定 | E-01, E-08 | ○ |
| C-10 | BR-010: ストリーム接続の待ち受けと受け入れ | E-01, E-16 | ○ |
| C-11 | BR-011: 非同期データ読み取り | E-01, E-16 | ○ |
| C-12 | BR-012: 非同期データ書き込み | E-01, E-16 | ○ |
| C-13 | BR-013: ストリームシャットダウン | E-01, E-16 | ○ |
| C-14 | BR-014: IPC経由のハンドル転送 | E-01, E-16, E-19 | ○ |
| C-15 | BR-015: TCP接続の確立 | E-01, E-17 | ○ |
| C-16 | BR-016: TCPソケットのバインドとリッスン | E-01, E-17 | ○ |
| C-17 | BR-017: TCP接続パラメータ設定 | E-01, E-17 | ○ |
| C-18 | BR-018: TCP接続のRSTクローズ | E-01, E-17 | ○ |
| C-19 | BR-019: UDPデータグラムの送受信 | E-01, E-18 | ○ |
| C-20 | BR-020: UDPマルチキャスト管理 | E-01, E-18 | ○ |
| C-21 | BR-021: UDPブロードキャスト・TTL設定 | E-01, E-18 | ○ |
| C-22 | BR-022: Connected UDP対応 | E-01, E-18 | ○ |
| C-23 | BR-023: 名前付きパイプ/Unixドメインソケット通信 | E-01, E-19 | ○ |
| C-24 | BR-024: パイプのパーミッション変更 | E-01, E-19 | ○ |
| C-25 | BR-025: 端末（TTY）の初期化と制御 | E-01, E-20 | ○ |
| C-26 | BR-026: 仮想端末シーケンス対応 | E-01, E-05 | ○ |
| C-27 | BR-027: タイマーの開始・停止・リピート | E-01, E-09, E-12 | ○ |
| C-28 | BR-028: タイマーの残り時間・リピート間隔管理 | E-01, E-09 | ○ |
| C-29 | BR-029: Unixシグナルのハンドリング | E-01, E-22, E-07 | ○ |
| C-30 | BR-030: 子プロセスの生成（spawn） | E-01, E-21 | ○ |
| C-31 | BR-031: 子プロセスの終了監視 | E-01, E-21 | ○ |
| C-32 | BR-032: プロセスへのシグナル送信 | E-01, E-21 | ○ |
| C-33 | BR-033: 子プロセスのstdioリダイレクト | E-01, E-21 | ○ |
| C-34 | BR-034: デタッチドプロセス・セッション管理 | E-01, E-21 | △ |
| C-35 | BR-035: ファイルの非同期/同期オープン・クローズ | E-01, E-23 | ○ |
| C-36 | BR-036: ファイルの非同期/同期読み書き | E-01, E-23 | ○ |
| C-37 | BR-037: ファイル属性の取得・変更 | E-01, E-23 | ○ |
| C-38 | BR-038: ディレクトリ操作 | E-01, E-23 | ○ |
| C-39 | BR-039: リンク操作 | E-01, E-23 | ○ |
| C-40 | BR-040: ファイルコピー・送信 | E-01, E-23 | ○ |
| C-41 | BR-041: ファイルデータ同期 | E-01, E-23 | ○ |
| C-42 | BR-042: ファイルシステム統計情報取得 | E-01, E-23 | ○ |
| C-43 | BR-043: カーネルベースのファイル変更監視 | E-01, E-31, E-33 | ○ |
| C-44 | BR-044: ポーリングベースのファイル変更監視 | E-01, E-11 | ○ |
| C-45 | BR-045: 非同期DNS正引き（名前解決） | E-01, E-24 | ○ |
| C-46 | BR-046: 非同期DNS逆引き | E-01, E-25 | ○ |
| C-47 | BR-047: IPアドレス変換ユーティリティ | E-01, E-35 | ○ |
| C-48 | BR-048: スレッドプールでのタスク実行 | E-01, E-10 | ○ |
| C-49 | BR-049: タスクのキャンセル | E-01, E-10 | ○ |
| C-50 | BR-050: スローI/Oスロットリング | E-10 | △ |
| C-51 | BR-051: スレッドの生成・終了管理 | E-01, E-26 | ○ |
| C-52 | BR-052: スレッドのCPUアフィニティ設定 | E-01, E-26 | ○ |
| C-53 | BR-053: スレッドの優先度・名前設定 | E-01, E-26 | ○ |
| C-54 | BR-054: ミューテックスによる排他制御 | E-01, E-26 | ○ |
| C-55 | BR-055: リーダーライターロック | E-01, E-26 | ○ |
| C-56 | BR-056: セマフォによるリソース制御 | E-01, E-26 | ○ |
| C-57 | BR-057: 条件変数による待機・通知 | E-01, E-26 | ○ |
| C-58 | BR-058: バリアによるスレッド同期 | E-01, E-26 | ○ |
| C-59 | BR-059: ワンタイム初期化 | E-01, E-26 | ○ |
| C-60 | BR-060: スレッドローカルストレージ | E-01, E-26 | ○ |
| C-61 | BR-061: スレッド間の非同期イベント通知 | E-01, E-27 | ○ |
| C-62 | BR-062: I/Oポーリング前後のフック実行 | E-01, E-29 | ○ |
| C-63 | BR-063: 任意ファイルディスクリプタの監視 | E-01, E-28 | ○ |
| C-64 | BR-064: CPU情報の取得 | E-01, E-14 | ○ |
| C-65 | BR-065: メモリ情報の取得 | E-01, E-14 | ○ |
| C-66 | BR-066: OS情報・ホスト情報の取得 | E-01, E-14 | ○ |
| C-67 | BR-067: プロセス情報の取得・設定 | E-01, E-14 | ○ |
| C-68 | BR-068: 環境変数の操作 | E-01, E-14 | ○ |
| C-69 | BR-069: ユーザー・グループ情報の取得 | E-01, E-14 | ○ |
| C-70 | BR-070: パス情報の取得・変更 | E-01, E-14 | ○ |
| C-71 | BR-071: ネットワークインタフェース情報の取得 | E-01, E-14 | ○ |
| C-72 | BR-072: 高精度時刻の取得 | E-01, E-14 | ○ |
| C-73 | BR-073: スリープ機能 | E-01, E-14 | ○ |
| C-74 | BR-074: 共有ライブラリの動的読み込み | E-01, E-30 | ○ |
| C-75 | BR-075: 暗号論的安全な乱数生成 | E-01, E-34 | ○ |
| C-76 | BR-076: 統一的なエラーコード体系 | E-01, E-03, E-08 | ○ |
| C-77 | BR-077: カスタムメモリアロケータ | E-01, E-08 | ○ |
| C-78 | BR-078: バッファ管理 | E-01, E-04, E-05 | ○ |
| C-79 | BR-079: I/Oバックエンドの抽象化 | E-01, E-14, E-31, E-32, E-38 | ○ |
| C-80 | BR-080: ソケット・パイプペア作成 | E-01, E-14 | ○ |
| C-81 | BR-081: Unicode文字列変換 | E-01, E-08 | ○ |
| C-82 | BR-082: FD/ハンドル変換 | E-01, E-14 | ○ |
| C-83 | BR-083: ハンドル型推定 | E-01, E-08 | ○ |
| C-84 | BR-084: ライブラリバージョン情報の提供 | E-01, E-02, E-37 | ○ |
| C-85 | BR-085: プロセス優先度の設定 | E-01, E-14 | ○ |
| C-86 | BR-086: ストリームのブロッキングモード設定 | E-01, E-16 | ○ |
| C-87 | BR-087: stdio継承の無効化 | E-01, E-14 | ○ |
| C-88 | BR-088: ライブラリのシャットダウン | E-01, E-08 | ○ |

## 4) 不足情報（Unknown / Missing）
- **BR-005（fork後のループ再初期化）**: 各プラットフォーム（Linux/macOS/BSD）でのfork後の挙動差異の詳細が公式ドキュメントで完全に文書化されていない可能性がある
  - 候補：公式libuv docs / プラットフォーム固有のfork制約ドキュメント / テストケース（test-fork.c）
- **BR-034（デタッチドプロセス・セッション管理）**: WindowsでのUV_PROCESS_DETACHED動作の詳細（CREATE_NEW_PROCESS_GROUP等）とUnixのsetsid()の動作差異について、ソースコードからの推測に依存
  - 候補：Windows CreateProcess API docs / src/win/process.c の詳細調査 / 公式libuvドキュメント
- **BR-050（スローI/Oスロットリング）**: スロットル閾値 `(nthreads+1)/2` は内部実装の詳細であり公開APIではない。将来変更される可能性がある
  - 候補：src/threadpool.c のコメント / libuv設計ドキュメント / GitHubのPR/Issue

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク — 全体の信頼度0.97は高水準。libuvは明確なAPIヘッダ（uv.h）を持ち、各関数宣言がそのまま機能要件の根拠となるため信頼性が高い
- 1: 中リスク — libuvはシステムライブラリであり「業務要件」という概念とは本来馴染まない。業務アプリケーションの要件一覧としてではなく、ライブラリの機能要件一覧として解釈する必要がある
- 1: 中リスク — プラットフォーム固有の動作差異（特にWindows vs Unix）について、全ての差異を網羅できていない可能性がある

## 6) レビュアーチェックリスト（最小）
- [ ] 業務要件IDの重複がないこと（BR-001〜BR-088）
- [ ] 全てのカテゴリが適切に分類されていること
- [ ] 関連機能欄のAPI名がinclude/uv.hの実際の宣言と一致すること
- [ ] 優先度の判断が妥当であること（高：コア機能、中：補助機能、低：特殊用途）
- [ ] △マークの3件（BR-005, BR-034, BR-050）について追加調査が必要か判断すること
- [ ] libuvの公式ドキュメント（docs/src/）との整合性を確認すること
- [ ] Windows固有の機能（仮想端末、Named Pipe、IOCP等）が適切にカバーされていること
