---
generated_at: 2026-02-22 10:45:00
metrics:
  claims_total: 20
  claims_with_evidence: 19
  claims_without_evidence: 1
confidence_derived: 0.95
---

# 根拠レポート：90-プロセス生成

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：19 / 20、根拠なし：1
- 優先レビュー（高）
  1. **Windows実装の記載**: Windows版process.cは未確認

## 2) 参照した情報（Evidence一覧）

- E-01: `src/unix/process.c` 966-1094行目（uv_spawn実装）
- E-02: `src/unix/process.c` 860-963行目（uv__spawn_and_init_child）
- E-03: `src/unix/process.c` 819-858行目（uv__spawn_and_init_child_fork）
- E-04: `src/unix/process.c` 287-417行目（uv__process_child_init）
- E-05: `src/unix/process.c` 778-817行目（uv__spawn_and_init_child_posix_spawn）
- E-06: `src/unix/process.c` 469-538行目（uv__spawn_set_posix_spawn_attrs）
- E-07: `src/unix/process.c` 678-775行目（uv__spawn_resolve_and_spawn）
- E-08: `src/unix/process.c` 75-78行目（uv__chld）
- E-09: `src/unix/process.c` 101-177行目（uv__wait_children）
- E-10: `include/uv.h` 1065-1174行目（構造体・列挙型定義）
- E-11: `include/uv.h` 1176-1178行目（API宣言）
- E-12: `src/unix/process.c` 188-235行目（uv__process_init_stdio）
- E-13: `src/unix/process.c` 238-260行目（uv__process_open_stream）

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | UV_PROCESSとしてハンドルを初期化する | E-01 (991行目) | ○ |
| C-02 | stdio_countが3未満なら3に調整 | E-01 (996-997行目) | ○ |
| C-03 | pipes_storage[8][2]でスタック確保、8以上ならヒープ | E-01 (973, 1001-1002行目) | ○ |
| C-04 | uv__process_init_stdio()で各stdioを初期化 | E-01 (1013行目), E-12 | ○ |
| C-05 | SIGCHLDの監視を開始する | E-01 (1019行目) | ○ |
| C-06 | macOSではposix_spawnを優先 | E-02 (872-898行目) | ○ |
| C-07 | ENOSYS時にfork/execにフォールバック | E-02 (897-898行目) | ○ |
| C-08 | fork前にcloexec_lockを取得 | E-02 (927行目) | ○ |
| C-09 | signal_pipeでexec失敗を親に通知 | E-02 (922-960行目) | ○ |
| C-10 | 子プロセスでシグナルをSIG_DFLにリセット | E-04 (302-315行目) | ○ |
| C-11 | UV_PROCESS_DETACHEDでsetsid()を呼ぶ | E-04 (317-318行目) | ○ |
| C-12 | UV_PROCESS_SETUIDでsetuid()を呼ぶ | E-04 (399-400行目) | ○ |
| C-13 | setgroups(0, NULL)で余分なグループを削除 | E-04 (393行目) | ○ |
| C-14 | kqueueではEVFILT_PROC NOTE_EXITで終了監視 | E-01 (1039-1046行目) | ○ |
| C-15 | waitpid()で終了を検出しexit_cbを呼ぶ | E-09 (130-174行目) | ○ |
| C-16 | Apple TV/Watchではforkが禁止されUV_ENOSYS | E-01 (969-971行目) | ○ |
| C-17 | uv_process_options_tの構造体フィールド | E-10 | ○ |
| C-18 | uv_process_flagsの列挙値 | E-10 (1113-1163行目) | ○ |
| C-19 | posix_spawnでPOSIX_SPAWN_CLOEXEC_DEFAULTを使用 | E-06 (503行目) | ○ |
| C-20 | Windows版のuv_spawn()の動作詳細 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- Windows版のprocess実装（src/win/process.c）は参照していない
  - 候補: `src/win/process.c` / `src/win/process-stdio.c`

## 5) リスクフラグ（レビュー観点）
- 1: 中リスク - Windows実装の詳細が未記載（Unix実装のみカバー）

## 6) レビュアーチェックリスト（最小）
- [ ] macOS posix_spawnパスのフォールバック条件が正しいか
- [ ] stdio処理の各フラグ（UV_CREATE_PIPE, UV_INHERIT_FD, UV_INHERIT_STREAM）の動作が正しいか
- [ ] UID/GID変更時のsetgroups呼び出しの記載が正確か
- [ ] kqueue vs SIGCHLDの使い分けが正しいか
- [ ] Windows環境での動作の追記が必要かの判断
