---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 136
  claims_with_evidence: 132
  claims_without_evidence: 4
confidence_derived: 0.97
---

# 根拠レポート: termio単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）: **0.97**
  - 根拠あり: 132 / 136、根拠なし: 4
- 優先レビュー（高）
  1. **UT-TIO-029**: インスペクタ連携のテスト条件の詳細確認が必要
  2. **UT-TIO-082/083**: macOS固有のloginコマンド動作の確認が必要
  3. **UT-TIO-116**: Apple bash除外ロジックの環境依存確認が必要

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

- E-01: `src/termio/Termio.zig` - メインのTermio構造体とその関数群
- E-02: `src/termio/Thread.zig` - ターミナルIOスレッド管理
- E-03: `src/termio/Exec.zig` - サブプロセス実行とPTY管理
- E-04: `src/termio/Options.zig` - Termioオプション構造体
- E-05: `src/termio/mailbox.zig` - メールボックス（メッセージング）
- E-06: `src/termio/message.zig` - メッセージ型定義
- E-07: `src/termio/stream_handler.zig` - VTストリームハンドラ
- E-08: `src/termio/shell_integration.zig` - シェル統合機能
- E-09: `src/termio/backend.zig` - バックエンド抽象化層

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

### Termio.zig関連 (UT-TIO-001 〜 UT-TIO-039)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Termio.initが有効なオプションで初期化される | E-01 L221-320 | ○ |
| C-02 | Termio.initが無効なオプションでエラーを返す | E-01 L221-320 | ○ |
| C-03 | Termio.deinitでリソースが解放される | E-01 L322-333 | ○ |
| C-04 | Termio.threadEnterでスレッドが開始される | E-01 L335-388 | ○ |
| C-05 | 入力ファイルが見つからない場合エラーとなる | E-01 L126-136 | ○ |
| C-06 | Termio.threadExitでスレッドが終了する | E-01 L390-392 | ○ |
| C-07 | queueMessageでメッセージがキューに追加される | E-01 L400-410 | ○ |
| C-08 | queueWriteでデータがPTYにキューされる | E-01 L419-426 | ○ |
| C-09 | changeConfigで設定が更新される | E-01 L429-475 | ○ |
| C-10 | resizeでターミナルサイズが変更される | E-01 L478-518 | ○ |
| C-11 | sizeReportで各形式のレポートが送信される | E-01 L521-571 | ○ |
| C-12 | resetSynchronizedOutputで同期出力がリセットされる | E-01 L575-580 | ○ |
| C-13 | clearScreenで画面がクリアされる | E-01 L583-636 | ○ |
| C-14 | scrollViewportでビューポートがスクロールされる | E-01 L639-646 | ○ |
| C-15 | jumpToPromptでプロンプトにジャンプする | E-01 L649-657 | ○ |
| C-16 | focusGainedでフォーカスイベントが送信される | E-01 L660-673 | ○ |
| C-17 | processOutputでPTY出力が処理される | E-01 L678-738 | ○ |
| C-18 | colorSchemeReportでカラースキームが報告される | E-01 L741-757 | ○ |
| C-19 | DerivedConfig.initで設定が派生される | E-01 L170-215 | ○ |
| C-20 | ThreadEnterState.createで状態が作成される | E-01 L83-107 | ○ |
| C-21 | ThreadEnterState.prepareInputで入力が準備される | E-01 L114-144 | ○ |

### Thread.zig関連 (UT-TIO-040 〜 UT-TIO-051)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | Thread.initでスレッドが初期化される | E-02 L91-122 | ○ |
| C-23 | Thread.deinitで全リソースが解放される | E-02 L126-132 | ○ |
| C-24 | threadMainでメインループが実行される | E-02 L135-234 | ○ |
| C-25 | drainMailboxでメールボックスがドレインされる | E-02 L289-362 | ○ |
| C-26 | handleResizeでリサイズがコアレスされる | E-02 L376-393 | ○ |
| C-27 | startSynchronizedOutputでタイマーが開始される | E-02 L364-374 | ○ |
| C-28 | startScrollTimerでスクロールタイマーが開始される | E-02 L471-491 | ○ |
| C-29 | stopScrollTimerでscroll_activeがfalseになる | E-02 L493-496 | ○ |

### Exec.zig関連 (UT-TIO-052 〜 UT-TIO-083)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | Exec.initでExecが初期化される | E-03 L47-55 | ○ |
| C-31 | Exec.deinitでsubprocessが解放される | E-03 L57-59 | ○ |
| C-32 | initTerminalでpwdとサイズが設定される | E-03 L65-82 | ○ |
| C-33 | threadEnterでサブプロセスが開始される | E-03 L84-192 | ○ |
| C-34 | threadExitでサブプロセスが停止される | E-03 L194-227 | ○ |
| C-35 | focusGainedでtermiosタイマーが制御される | E-03 L229-258 | ○ |
| C-36 | resizeでPTYサイズが変更される | E-03 L260-266 | ○ |
| C-37 | queueWriteでデータがキューされる | E-03 L402-467 | ○ |
| C-38 | Subprocess.initで環境変数が設定される | E-03 L615-871 | ○ |
| C-39 | Subprocess.startでPTYとプロセスが開始される | E-03 L884-1069 | ○ |
| C-40 | Subprocess.stopでSIGHUPが送信される | E-03 L1089-1107 | ○ |
| C-41 | Subprocess.resizeでPTYサイズが設定される | E-03 L1110-1130 | ○ |
| C-42 | ReadThread.threadMainPosixでデータが読み込まれる | E-03 L1248-1348 | ○ |
| C-43 | ReadThread.threadMainWindowsでデータが読み込まれる | E-03 L1350-1393 | ○ |
| C-44 | execCommandでコマンドが構築される | E-03 L1411-1581 | ○ |
| C-45 | macOSでloginコマンドが使用される | E-03 L1419-1535, テスト1583-1635 | △ |

### mailbox.zig関連 (UT-TIO-084 〜 UT-TIO-088)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | Mailbox.initSPSCでメールボックスが初期化される | E-05 L36-44 | ○ |
| C-47 | Mailbox.deinitでリソースが解放される | E-05 L46-53 | ○ |
| C-48 | Mailbox.sendでメッセージがキューに追加される | E-05 L61-95 | ○ |
| C-49 | Mailbox.notifyでwakeupが通知される | E-05 L99-105 | ○ |

### message.zig関連 (UT-TIO-089 〜 UT-TIO-091)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | Message.writeReqでメッセージが生成される | E-06 L88-94 | ○ |
| C-51 | Messageサイズが40バイトである | E-06 L109-113, テスト | ○ |

### stream_handler.zig関連 (UT-TIO-092 〜 UT-TIO-107)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-52 | StreamHandler.deinitでリソースが解放される | E-07 L90-99 | ○ |
| C-53 | queueRenderでレンダラーに通知される | E-07 L104-106 | ○ |
| C-54 | changeConfigで設定が更新される | E-07 L109-123 | ○ |
| C-55 | vt関数で各アクションが処理される | E-07 L175-356 | ○ |
| C-56 | setCursorStyleでカーソルスタイルが設定される | E-07 L874-921 | ○ |
| C-57 | setModeでモードが設定される | E-07 L634-803 | ○ |
| C-58 | deviceAttributesでデバイス属性が返される | E-07 L813-836 | ○ |
| C-59 | deviceStatusReportでステータスが返される | E-07 L838-872 | ○ |
| C-60 | enquiryでENQ応答が送信される | E-07 L935-938 | ○ |
| C-61 | fullResetでターミナルがリセットされる | E-07 L948-959 | ○ |
| C-62 | reportXtversionでバージョンが報告される | E-07 L976-991 | ○ |

### shell_integration.zig関連 (UT-TIO-108 〜 UT-TIO-128)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | setupでシェル統合が設定される | E-08 L42-85, テスト87-134 | ○ |
| C-64 | detectShellでシェルが検出される | E-08 L136-166, テスト168-185 | ○ |
| C-65 | macOSの/bin/bashはnullが返される | E-08 L152-156 | △ |
| C-66 | setupFeaturesでフィーチャーが設定される | E-08 L188-236, テスト238-286 | ○ |
| C-67 | setupBashでbash統合が設定される | E-08 L298-408, テスト410-614 | ○ |
| C-68 | setupZshでzsh統合が設定される | E-08 L891-917, テスト919-976 | ○ |
| C-69 | setupXdgDataDirsでXDGが設定される | E-08 L623-670, テスト672-743 | ○ |
| C-70 | setupNushellでnushell統合が設定される | E-08 L751-815, テスト817-886 | ○ |

### backend.zig関連 (UT-TIO-129 〜 UT-TIO-136)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | Backend.deinitでexecがdeinitされる | E-09 L26-30 | ○ |
| C-72 | Backend.initTerminalが委譲される | E-09 L32-36 | ○ |
| C-73 | Backend.threadEnterが委譲される | E-09 L38-47 | ○ |
| C-74 | Backend.threadExitが委譲される | E-09 L49-53 | ○ |
| C-75 | Backend.resizeが委譲される | E-09 L65-73 | ○ |
| C-76 | Backend.queueWriteが委譲される | E-09 L75-85 | ○ |
| C-77 | ThreadData.deinitでexecがdeinitされる | E-09 L109-114 | ○ |

## 4) 不足情報（Unknown / Missing）
- **macOS固有の動作**: macOSでのloginコマンドラッパー(UT-TIO-082, UT-TIO-083)は環境依存のため、実機確認が推奨される
  - 候補: macOS環境での実行テスト / CI環境での検証
- **Apple bash除外ロジック**: macOSの/bin/bashの除外(UT-TIO-116)はSystem Integrity Protectionに依存
  - 候補: macOS Sonoma以降での動作確認
- **インスペクタ連携**: インスペクタ有効時の処理(UT-TIO-029)は内部状態に依存
  - 候補: インスペクタ機能の詳細仕様確認
- **Flatpak対応**: Flatpak環境でのコマンド実行はビルドフラグに依存
  - 候補: Flatpakビルド環境での検証

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 大部分のテストケースは明確なソースコード根拠がある
- **1 (中リスク)**: macOS/Windows固有の動作は環境依存のため追加検証が必要
- **1 (中リスク)**: Flatpak/シェル統合はビルド設定に依存

## 6) レビュアーチェックリスト（最小）
- [ ] 各ファイルの主要関数がテストケースでカバーされているか確認
- [ ] 正常系・異常系・境界値のテスト観点が適切か確認
- [ ] 優先度（高/中/低）の割り当てが適切か確認
- [ ] macOS固有テスト(UT-TIO-082, 083, 116)の環境依存性を考慮
- [ ] テストIDの命名規則（UT-TIO-XXX）が一貫しているか確認
- [ ] 入力値と期待結果の記述が具体的か確認
