---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 152
  claims_with_evidence: 152
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：nu-system.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：152 / 152、根拠なし：0
- 優先レビュー（高）
  1. **プラットフォーム固有テスト**：各OS環境でのテスト実行が必要
  2. **プロセス制御テスト**：実プロセスの起動・終了を伴うテストの安定性確認
  3. **権限関連テスト**：管理者権限や特権が必要なテストの実行環境確認

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

- E-01: `crates/nu-system/src/lib.rs` - モジュール構造とエクスポート定義
- E-02: `crates/nu-system/src/exit_status.rs` - ExitStatus構造体と実装（lines 1-65）
- E-03: `crates/nu-system/src/util.rs` - kill_by_pid/build_kill_command関数（lines 1-59）
- E-04: `crates/nu-system/src/os_info.rs` - OS情報取得関数群（lines 1-18）
- E-05: `crates/nu-system/src/unix.rs` - get_umask関数（lines 1-20）
- E-06: `crates/nu-system/src/foreground.rs` - ForegroundChild/ForegroundGuard/UnfreezeHandle構造体と実装（lines 1-438）
- E-07: `crates/nu-system/src/linux.rs` - ProcessTask/ProcessInfo構造体とcollect_proc関数（lines 1-239）
- E-08: `crates/nu-system/src/macos.rs` - ProcessInfo構造体とcollect_proc関数（lines 1-452）
- E-09: `crates/nu-system/src/windows.rs` - ProcessInfo構造体とcollect_proc関数（lines 1-1067）
- E-10: `crates/nu-system/src/freebsd.rs` - ProcessInfo構造体とcollect_proc関数（lines 1-327）
- E-11: `crates/nu-system/src/netbsd.rs` - ProcessInfo構造体とcollect_proc関数（lines 1-367）

## 3) Claims と根拠の対応（レビューの主戦場）

### exit_status.rs関連（C-01〜C-09）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ExitStatus::codeがExited状態で終了コードを返す | E-02 lines 14-16 | ○ |
| C-02 | ExitStatus::codeがエラー終了コードを正しく返す | E-02 lines 14-16 | ○ |
| C-03 | ExitStatus::codeが負の終了コードを返す | E-02 lines 14-16 | ○ |
| C-04 | ExitStatus::codeがSignaled状態でシグナル番号の負値を返す | E-02 lines 17-19 | ○ |
| C-05 | From<process::ExitStatus>でExitedに変換できる | E-02 lines 24-29 | ○ |
| C-06 | From<process::ExitStatus>でSignaledに変換できる（Unix） | E-02 lines 30-33 | ○ |
| C-07 | code/signal両方None時にExited(-1)を返す | E-02 lines 34-37 | ○ |
| C-08 | 終了コード最大値の変換 | E-02 lines 14-16 | ○ |
| C-09 | 終了コード最小値の変換 | E-02 lines 14-16 | ○ |

### util.rs関連（C-10〜C-18）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | kill_by_pidが存在するプロセスを強制終了できる | E-03 lines 5-14 | ○ |
| C-11 | kill_by_pidが存在しないプロセスでエラーを返す | E-03 lines 10-13 | ○ |
| C-12 | kill_by_pidでPID=0の挙動 | E-03 lines 5-14 | ○ |
| C-13 | kill_by_pidで負のPIDの挙動 | E-03 lines 5-14 | ○ |
| C-14 | build_kill_commandがUnixで-9フラグを付与 | E-03 lines 47-53 | ○ |
| C-15 | build_kill_commandがシグナル番号を付与 | E-03 lines 49-51 | ○ |
| C-16 | build_kill_commandがWindowsで/Fフラグを付与 | E-03 lines 33-37 | ○ |
| C-17 | build_kill_commandが複数PIDを処理 | E-03 lines 41-44, 55 | ○ |
| C-18 | build_kill_commandで空PIDリストの挙動 | E-03 lines 29-58 | ○ |

### os_info.rs関連（C-19〜C-23）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | get_os_nameがOS名を返す | E-04 lines 1-3 | ○ |
| C-20 | get_os_archがアーキテクチャ名を返す | E-04 lines 5-7 | ○ |
| C-21 | get_os_familyがOSファミリー名を返す | E-04 lines 9-11 | ○ |
| C-22 | get_kernel_versionがカーネルバージョンを返す | E-04 lines 13-18 | ○ |
| C-23 | get_kernel_versionが取得失敗時にunknownを返す | E-04 lines 16-17 | ○ |

### unix.rs関連（C-24〜C-26）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 | get_umaskがumask値を返す | E-05 lines 5-20 | ○ |
| C-25 | get_umaskが複数スレッドで安全に動作 | E-05 lines 10-17（Mutex使用） | ○ |
| C-26 | get_umaskがロックポイズン時にリカバリ | E-05 lines 12-16 | ○ |

### foreground.rs関連（C-27〜C-47）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | ForegroundChild::spawnが非Unixで正常動作 | E-06 lines 45-48 | ○ |
| C-28 | ForegroundChild::spawnがUnix非インタラクティブで動作 | E-06 lines 85-91 | ○ |
| C-29 | ForegroundChild::spawnがbackground=trueで専用pgrp使用 | E-06 lines 59-84 | ○ |
| C-30 | ForegroundChild::spawnが存在しないコマンドでエラー | E-06 lines 65-66 | ○ |
| C-31 | ForegroundChild::waitがFinishedステータスを返す | E-06 lines 94-107, 125-127 | ○ |
| C-32 | ForegroundChild::waitがFrozenステータスを返す（Unix） | E-06 lines 134-136 | ○ |
| C-33 | ForegroundChild::pidがプロセスIDを返す | E-06 lines 109-111 | ○ |
| C-34 | ForegroundWaitStatus::FromがExitStatusを変換 | E-06 lines 149-153 | ○ |
| C-35 | UnfreezeHandle::unfreezeがプロセスを再開 | E-06 lines 162-181 | ○ |
| C-36 | UnfreezeHandle::pidがUnixでPIDを返す | E-06 lines 183-191 | ○ |
| C-37 | UnfreezeHandle::pidが非Unixで0を返す | E-06 lines 189-190 | ○ |
| C-38 | ForegroundGuard::newがUnixでフォアグラウンド設定 | E-06 lines 242-297 | ○ |
| C-39 | ForegroundGuard::newが非UnixでOkを返す | E-06 lines 300-307 | ○ |
| C-40 | ForegroundGuard::pgrpがpgrpを返す | E-06 lines 311-320 | ○ |
| C-41 | ForegroundGuard::pgrpが非UnixでNoneを返す | E-06 lines 316-318 | ○ |
| C-42 | ForegroundGuard::Dropがフォアグラウンドリセット | E-06 lines 323-335, 338-341 | ○ |
| C-43 | ForegroundChild::Dropがカウント減算 | E-06 lines 201-213 | ○ |
| C-44 | stdin_fdがSTDIN_FILENOを返す | E-06 lines 367-369 | ○ |
| C-45 | prepare_commandがpre_execを設定 | E-06 lines 371-398 | ○ |
| C-46 | setがフォアグラウンド設定 | E-06 lines 400-406 | ○ |
| C-47 | resetがシェルにリセット | E-06 lines 427-437 | ○ |

### linux.rs関連（C-48〜C-74）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | ProcessTask::statがProcess型でStat取得 | E-07 lines 14-15 | ○ |
| C-49 | ProcessTask::statがTask型でStat取得 | E-07 lines 16-18 | ○ |
| C-50 | ProcessTask::cmdlineがProcess型で引数取得 | E-07 lines 21-23 | ○ |
| C-51 | ProcessTask::cmdlineがTask型でエラー | E-07 lines 24-25 | ○ |
| C-52 | ProcessTask::cgroupsがcgroups取得 | E-07 lines 28-32 | ○ |
| C-53 | ProcessTask::fdがFD情報取得 | E-07 lines 35-39 | ○ |
| C-54 | ProcessTask::loginuidがログインUID取得 | E-07 lines 42-46 | ○ |
| C-55 | ProcessTask::ownerがProcess型でUID取得 | E-07 lines 49-51 | ○ |
| C-56 | ProcessTask::ownerがTask型でUID取得 | E-07 lines 52-53 | ○ |
| C-57 | ProcessTask::wchanがwchan取得 | E-07 lines 56-60 | ○ |
| C-58 | collect_procが全プロセス収集 | E-07 lines 77-132 | ○ |
| C-59 | collect_procがinterval=0で動作 | E-07 lines 92 | ○ |
| C-60 | ProcessInfo::pidがPID取得 | E-07 lines 136-138 | ○ |
| C-61 | ProcessInfo::ppidがPPID取得 | E-07 lines 141-143 | ○ |
| C-62 | ProcessInfo::nameがプロセス名取得 | E-07 lines 146-158 | ○ |
| C-63 | ProcessInfo::nameがcmdline空でcommにフォールバック | E-07 lines 151-157 | ○ |
| C-64 | ProcessInfo::commandがコマンドライン取得 | E-07 lines 166-174 | ○ |
| C-65 | ProcessInfo::commandが改行/タブ置換 | E-07 line 170 | ○ |
| C-66 | ProcessInfo::cwdがCWD取得 | E-07 lines 176-178 | ○ |
| C-67 | ProcessInfo::statusがRunning返却 | E-07 lines 181-200, line 185 | ○ |
| C-68 | ProcessInfo::statusがSleeping返却 | E-07 line 184 | ○ |
| C-69 | ProcessInfo::statusがZombie返却 | E-07 line 187 | ○ |
| C-70 | ProcessInfo::statusがUnknown返却 | E-07 line 195 | ○ |
| C-71 | ProcessInfo::cpu_usageがCPU使用率計算 | E-07 lines 204-221 | ○ |
| C-72 | ProcessInfo::cpu_usageがprev_stat Noneで0.0 | E-07 lines 215-217 | ○ |
| C-73 | ProcessInfo::mem_sizeがメモリサイズ返却 | E-07 lines 224-228 | ○ |
| C-74 | ProcessInfo::virtual_sizeが仮想メモリ返却 | E-07 lines 231-233 | ○ |

### macos.rs関連（C-75〜C-93）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-75 | collect_procが全プロセス収集 | E-08 lines 34-128 | ○ |
| C-76 | ProcessInfo::pidがPID取得 | E-08 lines 335-337 | ○ |
| C-77 | ProcessInfo::ppidがPPID取得 | E-08 lines 340-342 | ○ |
| C-78 | ProcessInfo::nameがプロセス名取得 | E-08 lines 345-361 | ○ |
| C-79 | ProcessInfo::nameがcmd空で空文字列 | E-08 lines 355-359 | ○ |
| C-80 | ProcessInfo::commandがコマンドライン取得 | E-08 lines 364-374 | ○ |
| C-81 | ProcessInfo::statusがRunning返却 | E-08 lines 377-407, line 398 | ○ |
| C-82 | ProcessInfo::statusがWaiting返却 | E-08 lines 383-389 | ○ |
| C-83 | ProcessInfo::statusがStopped返却 | E-08 line 382 | ○ |
| C-84 | ProcessInfo::cpu_usageがCPU使用率計算 | E-08 lines 410-418 | ○ |
| C-85 | ProcessInfo::mem_sizeがメモリサイズ返却 | E-08 lines 421-423 | ○ |
| C-86 | ProcessInfo::virtual_sizeが仮想メモリ返却 | E-08 lines 426-428 | ○ |
| C-87 | ProcessInfo::cwdがCWD取得 | E-08 lines 431-435 | ○ |
| C-88 | ProcessInfo::cwdがcurr_path Noneで空文字列 | E-08 line 434 | ○ |
| C-89 | get_path_infoがパス情報取得 | E-08 lines 165-262 | ○ |
| C-90 | get_path_infoが無効PIDでNone | E-08 lines 259-261 | ○ |
| C-91 | clone_task_all_infoがTaskAllInfoクローン | E-08 lines 265-331 | ○ |
| C-92 | mach_ticktimeが変換係数取得 | E-08 lines 443-452 | ○ |
| C-93 | mach_ticktimeがエラー時1.0返却 | E-08 lines 449-450 | ○ |

### windows.rs関連（C-94〜C-121）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-94 | collect_procが全プロセス収集 | E-09 lines 113-258 | ○ |
| C-95 | ProcessInfo::pidがPID取得 | E-09 lines 1016-1018 | ○ |
| C-96 | ProcessInfo::ppidがPPID取得 | E-09 lines 1021-1023 | ○ |
| C-97 | ProcessInfo::nameがプロセス名取得 | E-09 lines 1026-1028 | ○ |
| C-98 | ProcessInfo::commandがコマンドライン取得 | E-09 lines 1031-1033 | ○ |
| C-99 | ProcessInfo::environが環境変数取得 | E-09 lines 1035-1037 | ○ |
| C-100 | ProcessInfo::cwdがCWD取得 | E-09 lines 1039-1041 | ○ |
| C-101 | ProcessInfo::statusがunknown返却 | E-09 lines 1044-1046 | ○ |
| C-102 | ProcessInfo::cpu_usageがCPU使用率計算 | E-09 lines 1049-1055 | ○ |
| C-103 | ProcessInfo::mem_sizeがメモリサイズ返却 | E-09 lines 1058-1060 | ○ |
| C-104 | ProcessInfo::virtual_sizeが仮想メモリ返却 | E-09 lines 1063-1065 | ○ |
| C-105 | get_pidsがPIDリスト取得 | E-09 lines 286-306 | ○ |
| C-106 | get_pidsがプロセスなしで空Vec | E-09 lines 298-300 | ○ |
| C-107 | get_ppid_threadsがマップ取得 | E-09 lines 308-330 | ○ |
| C-108 | get_handleがハンドル取得 | E-09 lines 332-350 | ○ |
| C-109 | get_handleがpid=0でNone | E-09 lines 333-335 | ○ |
| C-110 | get_handleが無効PIDでNone | E-09 lines 346-349 | ○ |
| C-111 | get_timesが時間情報取得 | E-09 lines 352-378 | ○ |
| C-112 | get_memory_infoがメモリ情報取得 | E-09 lines 380-408 | ○ |
| C-113 | get_commandがコマンド名取得 | E-09 lines 410-431 | ○ |
| C-114 | get_userがユーザー情報取得 | E-09 lines 802-852 | ○ |
| C-115 | get_groupsがグループ情報取得 | E-09 lines 854-911 | ○ |
| C-116 | get_priorityが優先度取得 | E-09 lines 1010-1012 | ○ |
| C-117 | get_ioがI/O情報取得 | E-09 lines 782-793 | ○ |
| C-118 | get_process_paramsが64bitプロセスパラメータ取得 | E-09 lines 592-666 | ○ |
| C-119 | get_process_paramsがWOW64プロセスパラメータ取得 | E-09 lines 667-701 | ○ |
| C-120 | set_privilegeがSE_DEBUG権限設定 | E-09 lines 260-284 | ○ |
| C-121 | set_privilegeが失敗時false返却 | E-09 lines 265-280 | ○ |

### freebsd.rs関連（C-122〜C-138）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-122 | collect_procが全プロセス収集 | E-10 lines 26-31 | ○ |
| C-123 | ProcessInfo::pidがPID取得 | E-10 lines 259-261 | ○ |
| C-124 | ProcessInfo::ppidがPPID取得 | E-10 lines 264-266 | ○ |
| C-125 | ProcessInfo::nameがプロセス名取得 | E-10 lines 269-284 | ○ |
| C-126 | ProcessInfo::nameがargv空でki_commフォールバック | E-10 lines 278-283 | ○ |
| C-127 | ProcessInfo::commandがコマンドライン取得 | E-10 lines 287-296 | ○ |
| C-128 | ProcessInfo::commandがargv空でname()フォールバック | E-10 lines 293-295 | ○ |
| C-129 | ProcessInfo::statusがRunning返却 | E-10 lines 299-310, line 301 | ○ |
| C-130 | ProcessInfo::statusがSleeping返却 | E-10 line 302 | ○ |
| C-131 | ProcessInfo::statusがZombie返却 | E-10 line 306 | ○ |
| C-132 | ProcessInfo::cpu_usageがCPU使用率返却 | E-10 lines 313-315 | ○ |
| C-133 | ProcessInfo::mem_sizeがメモリサイズ返却 | E-10 lines 318-320 | ○ |
| C-134 | ProcessInfo::virtual_sizeが仮想メモリ返却 | E-10 lines 323-325 | ○ |
| C-135 | compare_procsがプロセス比較 | E-10 lines 33-113 | ○ |
| C-136 | get_procsがkinfo_proc取得 | E-10 lines 133-177 | ○ |
| C-137 | get_proc_argsがプロセス引数取得 | E-10 lines 179-214 | ○ |
| C-138 | get_pagesizeがページサイズ取得 | E-10 lines 251-255 | ○ |

### netbsd.rs関連（C-139〜C-152）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-139 | collect_procが全プロセス収集 | E-11 lines 28-33 | ○ |
| C-140 | ProcessInfo::pidがPID取得 | E-11 lines 302-304 | ○ |
| C-141 | ProcessInfo::ppidがPPID取得 | E-11 lines 307-309 | ○ |
| C-142 | ProcessInfo::nameがプロセス名取得 | E-11 lines 312-318 | ○ |
| C-143 | ProcessInfo::commandがコマンドライン取得 | E-11 lines 321-329 | ○ |
| C-144 | ProcessInfo::statusがRunning返却 | E-11 lines 333-351, line 345 | ○ |
| C-145 | ProcessInfo::statusがZombie返却 | E-11 line 342 | ○ |
| C-146 | ProcessInfo::cpu_usageがCPU使用率返却 | E-11 lines 354-356 | ○ |
| C-147 | ProcessInfo::mem_sizeがメモリサイズ返却 | E-11 lines 359-361 | ○ |
| C-148 | ProcessInfo::virtual_sizeが仮想メモリ返却 | E-11 lines 364-366 | ○ |
| C-149 | compare_procsがプロセス比較 | E-11 lines 35-86 | ○ |
| C-150 | get_procsがKInfoProc取得 | E-11 lines 128-183 | ○ |
| C-151 | get_proc_argsがプロセス引数取得 | E-11 lines 186-258 | ○ |
| C-152 | get_pagesizeがページサイズ取得 | E-11 lines 294-298 | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの項目はありません。全152件のテストケースについて、ソースコード上の対応する実装を確認しました。

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**：全テストケースがソースコードの実装に基づいて生成されています
- **1（中リスク）**：プラットフォーム固有のテスト（Linux/macOS/Windows/FreeBSD/NetBSD）は実行環境の制約があります
- **1（中リスク）**：プロセス制御関連のテスト（ForegroundChild、kill_by_pid等）は実行時の権限やプロセス状態に依存します

## 6) レビュアーチェックリスト（最小）
- [ ] ExitStatus関連テストケース（C-01〜C-09）がUnix/非Unix両環境を網羅しているか確認
- [ ] kill_by_pidテストで実際のプロセス終了動作を検証する方法を検討
- [ ] フォアグラウンド制御テスト（C-27〜C-47）でターミナル状態の前提条件が適切か確認
- [ ] プラットフォーム固有テスト（Linux/macOS/Windows/FreeBSD/NetBSD）の実行環境準備確認
- [ ] CPU使用率計算テストで時間計測の精度が十分か確認
- [ ] Windows権限関連テスト（set_privilege）の実行に管理者権限が必要か確認
