---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 57
  claims_with_evidence: 57
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：data.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：57 / 57、根拠なし：0
- 優先レビュー（高）
  1. **DataMask$initialize の入力バリデーション**: ソースコード内のエラーメッセージと一致確認済み
  2. **DataMask の各メソッド**: R6クラス定義から直接抽出
  3. **データセット定義**: Rドキュメンテーションから直接抽出

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

- E-01: `R/data-mask.R` - DataMask R6クラス定義（353行）
- E-02: `R/data-bands.R` - バンドメンバーデータセット定義（26行）
- E-03: `R/data-starwars.R` - Star Warsデータセット定義（24行）
- E-04: `R/data-storms.R` - stormsデータセット定義（55行）

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

### DataMask クラス - initialize メソッド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 有効なデータフレームで初期化されること | E-01: L4-80 | ○ |
| C-02 | グループ化されたデータで初期化されること | E-01: L49 `private$grouped <- by$type == "grouped"` | ○ |
| C-03 | rowwiseデータで初期化されること | E-01: L50 `private$rowwise <- by$type == "rowwise"` | ○ |
| C-04 | グループが0個の場合の初期化 | E-01: L6-9 `if (length(rows) == 0)` | ○ |
| C-05 | NULL列名のデータフレームでエラー | E-01: L17-22 `cli::cli_abort("Can't transform a data frame with \`NULL\` names.")` | ○ |
| C-06 | NA列名を含むデータフレームでエラー | E-01: L23-28 `vec_any_missing(names)` チェック | ○ |
| C-07 | 空文字列列名のデータフレームでエラー | E-01: L31-37 `any(names_bindings == "")` チェック | ○ |
| C-08 | 重複列名のデータフレームでエラー | E-01: L38-43 `anyDuplicated(names_bindings)` チェック | ○ |

### DataMask クラス - データ操作メソッド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | add_one: 新しいバインディングが追加されること | E-01: L82-93 `add_one` メソッド定義 | ○ |
| C-10 | add_one: rowwiseでスカラーリストが展開されること | E-01: L83-90 `if (self$is_rowwise())` 分岐 | ○ |
| C-11 | remove: バインディングが削除されること | E-01: L95-97 `remove` メソッド定義 | ○ |
| C-12 | resolve: バインディングが解決されること | E-01: L99-101 `resolve` メソッド定義 | ○ |

### DataMask クラス - 評価メソッド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | eval_all: 式が正常に評価されること | E-01: L103-105 `eval_all` メソッド定義 | ○ |
| C-14 | eval_all_summarise: 集約式が正常に評価されること | E-01: L107-113 `eval_all_summarise` メソッド定義 | ○ |
| C-15 | eval_all_mutate: 変換式が正常に評価されること | E-01: L115-118 `eval_all_mutate` メソッド定義 | ○ |
| C-16 | eval_all_filter: フィルタ式が正常に評価されること | E-01: L120-132 `eval_all_filter` メソッド定義 | ○ |
| C-17 | eval_all_filter: invertがTRUEの場合のフィルタ | E-01: L121-130 `invert` パラメータ使用 | ○ |

### DataMask クラス - データ取得メソッド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | pick_current: 指定変数の現在値が取得されること | E-01: L134-149 `pick_current` メソッド定義 | ○ |
| C-19 | pick_current: rowwiseでリスト列が正しく処理されること | E-01: L139-146 rowwise分岐処理 | ○ |
| C-20 | current_cols: 現在の列値が取得されること | E-01: L151-153 `current_cols` メソッド定義 | ○ |
| C-21 | current_rows: 現在のグループの行インデックスが返されること | E-01: L155-157 `current_rows` メソッド定義 | ○ |
| C-22 | current_key: 現在のグループキーが返されること | E-01: L159-170 `current_key` メソッド定義 | ○ |
| C-23 | current_key: グループが0個の場合に空のキーが返されること | E-01: L162-166 `if (vec_size(keys) == 0L)` 分岐 | ○ |
| C-24 | current_vars: 現在の変数名が返されること | E-01: L172-174 `current_vars` メソッド定義 | ○ |
| C-25 | current_non_group_vars: グループ変数以外の変数名が返されること | E-01: L176-178 `current_non_group_vars` メソッド定義 | ○ |

### DataMask クラス - グループID/サイズアクセサ
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-26 | get_current_group_id: 現在のグループIDが返されること | E-01: L187-191 `get_current_group_id` メソッド定義 | ○ |
| C-27 | get_current_group_id: 返却値がコピーされていること | E-01: L188 `duplicate()` 呼び出し | ○ |
| C-28 | get_current_group_id_mutable: ミュータブルなグループIDが返されること | E-01: L192-194 `get_current_group_id_mutable` メソッド定義 | ○ |
| C-29 | get_current_group_size: 現在のグループサイズが返されること | E-01: L203-207 `get_current_group_size` メソッド定義 | ○ |
| C-30 | get_current_group_size: 返却値がコピーされていること | E-01: L204 `duplicate()` 呼び出し | ○ |
| C-31 | get_current_group_size_mutable: ミュータブルなグループサイズが返されること | E-01: L208-210 `get_current_group_size_mutable` メソッド定義 | ○ |
| C-32 | set_current_group: 現在のグループが設定されること | E-01: L212-224 `set_current_group` メソッド定義 | ○ |

### DataMask クラス - ユーティリティメソッド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | get_used: 使用された変数が返されること | E-01: L226-228 `get_used` メソッド定義 | ○ |
| C-34 | unused_vars: 未使用変数名が返されること | E-01: L230-234 `unused_vars` メソッド定義 | ○ |
| C-35 | get_rows: 行インデックスリストが返されること | E-01: L236-238 `get_rows` メソッド定義 | ○ |
| C-36 | get_current_data: グループ列を含むデータが返されること | E-01: L240-248 `get_current_data` メソッド定義 | ○ |
| C-37 | get_current_data: グループ列を除いたデータが返されること | E-01: L243-245 `if (!groups)` 分岐 | ○ |
| C-38 | forget: マスクが無効化されること | E-01: L250-277 `forget` メソッド定義 | ○ |
| C-39 | forget: 無効化後のアクセスでエラー | E-01: L254-266 `osbolete_promise_fn` 関数定義 | ○ |
| C-40 | is_grouped: グループ化状態がTRUEで返されること | E-01: L279-281 `is_grouped` メソッド定義 | ○ |
| C-41 | is_grouped: グループ化状態がFALSEで返されること | E-01: L279-281 `is_grouped` メソッド定義 | ○ |
| C-42 | is_rowwise: rowwise状態がTRUEで返されること | E-01: L283-285 `is_rowwise` メソッド定義 | ○ |
| C-43 | is_rowwise: rowwise状態がFALSEで返されること | E-01: L283-285 `is_rowwise` メソッド定義 | ○ |
| C-44 | get_keys: グループキーが返されること | E-01: L287-289 `get_keys` メソッド定義 | ○ |
| C-45 | get_n_groups: グループ数が返されること | E-01: L291-293 `get_n_groups` メソッド定義 | ○ |
| C-46 | get_n_groups: 0グループの場合に0が返されること | E-01: L77 `private$n_groups <- nrow(private$keys)` | ○ |
| C-47 | get_size: データサイズが返されること | E-01: L295-297 `get_size` メソッド定義 | ○ |
| C-48 | get_size: 空データの場合に0が返されること | E-01: L46 `private$size <- nrow(data)` | ○ |
| C-49 | get_rlang_mask: rlangデータマスクが返されること | E-01: L299-306 `get_rlang_mask` メソッド定義 | ○ |
| C-50 | get_rlang_mask: .dataプロナウンが含まれること | E-01: L304 `mask[[".data"]] <- as_data_pronoun(...)` | ○ |

### データセット定義
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | band_membersが正しい構造を持つこと | E-02: L1-17 ドキュメンテーション | ○ |
| C-52 | band_instrumentsが正しい構造を持つこと | E-02: L19-21 ドキュメンテーション | ○ |
| C-53 | band_instruments2がartist列を持つこと | E-02: L7-10 `band_instruments2 uses \`artist\`` | ○ |
| C-54 | starwarsが正しい構造を持つこと | E-03: L1-23 ドキュメンテーション | ○ |
| C-55 | starwarsにリスト列が正しく含まれること | E-03: L17-19 `films`, `vehicles`, `starships` 定義 | ○ |
| C-56 | stormsが正しい構造を持つこと | E-04: L1-54 ドキュメンテーション | ○ |
| C-57 | stormsの日時関連列が正しい型を持つこと | E-04: L16 `year,month,day` 定義 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - 全テストケースがソースコードの直接解析に基づいている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースにソースコード根拠あり

## 6) レビュアーチェックリスト（最小）
- [ ] DataMask$initialize の入力バリデーションテストケースが実際のエラーメッセージと一致するか確認
- [ ] C++呼び出し（.Call）を含むメソッドのテストケースで、期待結果が実装と整合しているか確認
- [ ] データセットの行数・列数がドキュメントと一致するか確認
- [ ] rowwise/grouped 分岐のテストケースが網羅的か確認
