---
generated_at: 2026-02-19 00:25:00
metrics:
  claims_total: 69
  claims_with_evidence: 69
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：compat.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：69 / 69、根拠なし：0
- 優先レビュー（高）
  1. **UT-CMP-001〜011**: dbplyr互換関数のテストケース - dbplyrパッケージへの依存があるため実行環境に注意
  2. **UT-CMP-013〜056**: 名前修復関数のテストケース - R言語固有の命名規則に依存
  3. **UT-CMP-050〜056**: re_match関数のテストケース - 正規表現パターンの妥当性確認が必要

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

- E-01: `R/compat-dbplyr.R` - dbplyr互換性関数の実装（76行）
- E-02: `R/compat-name-repair.R` - 名前修復互換性関数の実装（207行）
- E-03: `docs/code-to-docs/単体テストケース一覧/plan.md` - モジュール定義（compat: 2 files）

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

### compat-dbplyr.R関連（UT-CMP-001〜011）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | check_dbplyr()がdbplyrインストールチェックを行う | E-01（16-18行: check_installed("dbplyr", ...)） | ○ |
| C-02 | check_dbplyr()が未インストール時にエラーを発生させる | E-01（17行: check_installed関数の挙動） | ○ |
| C-03 | wrap_dbplyr_obj()が関数オブジェクトをラップする | E-01（22-56行: is.function(obj)分岐とラッパー生成） | ○ |
| C-04 | wrap_dbplyr_obj()が非関数オブジェクトをラップする | E-01（38-43行: else分岐） | ○ |
| C-05 | wrap_dbplyr_obj()が存在しないオブジェクトでエラーを出す | E-01（26行: getExportedValue呼び出し） | ○ |
| C-06 | sql()がdbplyr::sqlを呼び出す | E-01（61-64行: dbplyr::sql(...)呼び出し） | ○ |
| C-07 | sql()が複数引数を処理する | E-01（63行: ...引数の受け渡し） | ○ |
| C-08 | sql()がdbplyr未インストール時にエラーを出す | E-01（62行: check_dbplyr()呼び出し） | ○ |
| C-09 | ident()がdbplyr::identを呼び出す | E-01（72-75行: dbplyr::ident(...)呼び出し） | ○ |
| C-10 | ident()が複数引数を処理する | E-01（74行: ...引数の受け渡し） | ○ |
| C-11 | ident()がdbplyr未インストール時にエラーを出す | E-01（73行: check_dbplyr()呼び出し） | ○ |

### compat-name-repair.R関連（UT-CMP-012〜069）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | error_name_length_required()がエラーメッセージを返す | E-02（6-8行: 文字列リテラル返却） | ○ |
| C-13 | minimal_names()がNULL名前にn個の空文字列を返す | E-02（16-17行: rep_len("", n)） | ○ |
| C-14 | minimal_names()が既存の名前をそのまま返す | E-02（18-19行: name %|% ""） | ○ |
| C-15 | minimal_names()がNAを空文字列に変換する | E-02（19行: %|%演算子の挙動） | ○ |
| C-16 | minimal_names()がnull/n未指定でエラーを出す | E-02（11-13行: abort呼び出し） | ○ |
| C-17 | minimal_names()が空ベクトルを処理する | E-02（18-19行: ベクトル処理ロジック） | ○ |
| C-18 | minimal_names()がn=0で空ベクトルを返す | E-02（17行: rep_len("", 0)の挙動） | ○ |
| C-19 | set_minimal_names()が名前なしオブジェクトに空名前を設定 | E-02（23-26行: set_names呼び出し） | ○ |
| C-20 | set_minimal_names()が既存名前を保持する | E-02（24行: names(x)取得） | ○ |
| C-21 | unique_names()が重複なし名前をそのまま返す | E-02（28-44行: 重複チェックロジック） | ○ |
| C-22 | unique_names()が重複名前にサフィックスを付与 | E-02（37-38行: append_pos呼び出し） | ○ |
| C-23 | unique_names()が空名前に位置サフィックスを付与 | E-02（35行: needs_suffix=naked_is_empty） | ○ |
| C-24 | unique_names()がquiet=FALSEでメッセージ出力 | E-02（40-42行: describe_repair呼び出し） | ○ |
| C-25 | unique_names()がtransform関数を適用 | E-02（33行: transform(naked_name)） | ○ |
| C-26 | unique_names()が空ベクトルを処理 | E-02（28-44行: ベクトル処理ロジック） | ○ |
| C-27 | unique_names()が1件を処理 | E-02（28-44行: ベクトル処理ロジック） | ○ |
| C-28 | set_unique_names()がユニーク名前を設定 | E-02（47-51行: set_names呼び出し） | ○ |
| C-29 | set_unique_names()が重複名前を修復 | E-02（49行: unique_names呼び出し） | ○ |
| C-30 | universal_names()が構文的に正しい名前を生成 | E-02（53-55行: make_syntactic引数） | ○ |
| C-31 | universal_names()が有効名前を保持 | E-02（54行: transform=make_syntactic） | ○ |
| C-32 | set_universal_names()が構文的名前を設定 | E-02（57-61行: universal_names呼び出し） | ○ |
| C-33 | make_syntactic()がNAをピリオドに変換 | E-02（66-67行: name[is.na(name)] <- ""） | ○ |
| C-34 | make_syntactic()が空文字列をピリオドに変換 | E-02（67行: name[name == ""] <- "."） | ○ |
| C-35 | make_syntactic()が...を....に変換 | E-02（68行: name[name == "..."] <- "...."） | ○ |
| C-36 | make_syntactic()がアンダースコア開始を変換 | E-02（69行: sub("^_", "._", name)） | ○ |
| C-37 | make_syntactic()が数字開始を変換 | E-02（83-93行: 正規表現処理） | ○ |
| C-38 | make_syntactic()が純粋数字を変換 | E-02（91-92行: needs_third_dot処理） | ○ |
| C-39 | make_syntactic()が特殊文字を変換 | E-02（71行: make.names呼び出し） | ○ |
| C-40 | make_syntactic()が空ベクトルを処理 | E-02（65-96行: ベクトル処理） | ○ |
| C-41 | append_pos()が指定位置にサフィックスを追加 | E-02（98-102行: paste0とインデックス処理） | ○ |
| C-42 | append_pos()が全位置にサフィックスを追加 | E-02（99-100行: which(needs_suffix)） | ○ |
| C-43 | append_pos()がneeds_suffix=FALSEで変更なし | E-02（99行: which結果が空の場合） | ○ |
| C-44 | strip_pos()が位置サフィックスを除去 | E-02（104-107行: gsub正規表現） | ○ |
| C-45 | strip_pos()がサフィックスなしで変更なし | E-02（106行: gsub非マッチ時） | ○ |
| C-46 | strip_pos()が不正形式で変更なし | E-02（105行: 正規表現パターン） | ○ |
| C-47 | describe_repair()が変更をメッセージ出力 | E-02（118-130行: message呼び出し） | ○ |
| C-48 | describe_repair()が変更なしでメッセージなし | E-02（119行: any(new_names)条件） | ○ |
| C-49 | describe_repair()が長さ不一致でエラー | E-02（110-116行: abort呼び出し） | ○ |
| C-50 | re_match()が単純パターンマッチ | E-02（134-172行: regexpr呼び出し） | ○ |
| C-51 | re_match()がキャプチャグループ抽出 | E-02（158-168行: capture.start処理） | ○ |
| C-52 | re_match()がマッチなしでNA返却 | E-02（150行: matchstr[start == -1] <- NA） | ○ |
| C-53 | re_match()が複数テキスト処理 | E-02（141行: as.character(text)） | ○ |
| C-54 | re_match()がNULLパターンでエラー | E-02（135-139行: abort条件） | ○ |
| C-55 | re_match()がベクトルパターンでエラー | E-02（135行: length(pattern) != 1L） | ○ |
| C-56 | re_match()がNAパターンでエラー | E-02（135行: is.na(pattern)） | ○ |
| C-57 | bullets()がヘッダーと箇条書きを結合 | E-02（175-189行: paste0処理） | ○ |
| C-58 | bullets()が6件以上を省略 | E-02（178-181行: MAX_BULLETS処理） | ○ |
| C-59 | bullets()が0件でヘッダーのみ返却 | E-02（184-188行: paste処理） | ○ |
| C-60 | tick()がバッククォートで囲む | E-02（192-194行: encodeString） | ○ |
| C-61 | tick()がNAをNA文字列で返却 | E-02（193行: ifelse(is.na(x), "NA", ...)） | ○ |
| C-62 | tick()が複数値を処理 | E-02（193行: ベクトル化されたifelse） | ○ |
| C-63 | is_syntactic()が有効識別子でTRUE | E-02（196-200行: make_syntactic比較） | ○ |
| C-64 | is_syntactic()が無効識別子でFALSE | E-02（197行: 比較結果） | ○ |
| C-65 | is_syntactic()がNAでFALSE | E-02（198行: ret[is.na(x)] <- FALSE） | ○ |
| C-66 | is_syntactic()が複数値を判定 | E-02（197行: ベクトル比較） | ○ |
| C-67 | tick_if_needed()が無効識別子のみエスケープ | E-02（202-206行: needs_ticks条件） | ○ |
| C-68 | tick_if_needed()が有効識別子を保持 | E-02（203行: !is_syntactic(x)） | ○ |
| C-69 | tick_if_needed()が空文字列を処理 | E-02（204行: tick呼び出し） | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの項目はありません
- 全てのテストケースはソースコードの実装に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースがソースコードの実装に基づいている
- 1: 中リスク - dbplyrパッケージ依存のテスト（UT-CMP-001〜011）は実行環境でdbplyrが必要
- 1: 中リスク - R言語固有の命名規則（make.names等）に依存するテストケースは言語仕様の理解が必要

## 6) レビュアーチェックリスト（最小）
- [ ] dbplyr互換関数（check_dbplyr, wrap_dbplyr_obj, sql, ident）のテストケースがパッケージ依存を適切に考慮しているか
- [ ] 名前修復関数のテストケースがR言語の命名規則を正確に反映しているか
- [ ] 境界値テスト（空ベクトル、1件のみ、NA値）が網羅されているか
- [ ] エラーハンドリングのテストケースが実装のabort/check_installed呼び出しと一致しているか
- [ ] 正規表現を使用するre_match関数のテストパターンが妥当か
