---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 110
  claims_with_evidence: 107
  claims_without_evidence: 3
confidence_derived: 0.97
---

# 根拠レポート：config.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：107 / 110、根拠なし：3
- 優先レビュー（高）
  1. **UT-CFG-031**：Node.js v22.12以降の新機能（process.features.require_module）に関するテスト - 実行環境依存
  2. **UT-CFG-055**：loadEditorconfigInternal関数のプロジェクトルート検索連携テスト - 統合テスト的な性質
  3. **UT-CFG-109/110**：clearFindProjectRootCacheのsearcher未初期化時のテスト - 内部状態依存

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

- E-01: `src/config/prettier-config/loaders.js` - 設定ファイルローダー実装
- E-02: `src/config/prettier-config/index.js` - Prettier設定メイン処理
- E-03: `src/config/prettier-config/load-external-config.js` - 外部設定読み込み
- E-04: `src/config/prettier-config/config-searcher.js` - 設定ファイル検索
- E-05: `src/config/prettier-config/load-config.js` - 設定読み込みロジック
- E-06: `src/config/editorconfig/index.js` - EditorConfig処理
- E-07: `src/config/editorconfig/editorconfig-to-prettier.js` - EditorConfig変換
- E-08: `src/config/resolve-config.js` - 設定解決メイン処理
- E-09: `src/config/find-project-root.js` - プロジェクトルート検索

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

### loaders.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-CFG-001) | readJsonがJSONファイルを読み込めること | E-01 L7-15 | ○ |
| C-02 (UT-CFG-002) | readJsonが無効なJSONでエラーをスローすること | E-01 L11-14 (error.message修正処理) | ○ |
| C-03 (UT-CFG-003) | readJsonが存在しないファイルでエラーをスローすること | E-01 L8 (readFile呼び出し) | ○ |
| C-04 (UT-CFG-004) | importModuleDefaultがESモジュールを読み込めること | E-01 L17-20 | ○ |
| C-05 (UT-CFG-005) | importModuleDefaultが無効なモジュールでエラーをスローすること | E-01 L18 (import呼び出し) | ○ |
| C-06 (UT-CFG-006) | loadConfigFromPackageJsonがprettier設定を読み込めること | E-01 L40-48 | ○ |
| C-07 (UT-CFG-007) | loadConfigFromPackageJsonがprettierキーなしでundefinedを返すこと | E-01 L46-47 (prettier分割代入) | ○ |
| C-08 (UT-CFG-008) | loadConfigFromPackageYamlがprettier設定を読み込めること | E-01 L50-53 | ○ |
| C-09 (UT-CFG-009) | loadYamlがYAMLファイルを読み込めること | E-01 L55-70 | ○ |
| C-10 (UT-CFG-010) | loadYamlが無効なYAMLでエラーをスローすること | E-01 L66-69 | ○ |
| C-11 (UT-CFG-011) | loadTomlがTOMLファイルを読み込めること | E-01 L72-80 | ○ |
| C-12 (UT-CFG-012) | loadTomlが無効なTOMLでエラーをスローすること | E-01 L76-79 | ○ |
| C-13 (UT-CFG-013) | loadJson5がJSON5ファイルを読み込めること | E-01 L82-90 | ○ |
| C-14 (UT-CFG-014) | loadJson5が無効なJSON5でエラーをスローすること | E-01 L86-89 | ○ |
| C-15 (UT-CFG-015) | loaders['.toml']がloadToml関数を返すこと | E-01 L93 | ○ |
| C-16 (UT-CFG-016) | loaders['.json']がreadJson関数を返すこと | E-01 L95 | ○ |
| C-17 (UT-CFG-017) | loaders['']がloadYaml関数を返すこと | E-01 L105 | ○ |

### prettier-config/index.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 (UT-CFG-018) | clearPrettierConfigCacheがキャッシュをクリアすること | E-02 L12-15 | ○ |
| C-19 (UT-CFG-019) | loadPrettierConfigが設定を読み込めること | E-02 L22-31 | ○ |
| C-20 (UT-CFG-020) | loadPrettierConfigが相対パスを絶対パスに解決すること | E-02 L23 (path.resolve) | ○ |
| C-21 (UT-CFG-021) | loadPrettierConfigがキャッシュを使用すること | E-02 L25-30 | ○ |
| C-22 (UT-CFG-022) | shouldCache=falseでもキャッシュに保存されること | E-02 L26-27 コメント | ○ |
| C-23 (UT-CFG-023) | getSearchFunctionが検索関数を返すこと | E-02 L37-47 | ○ |
| C-24 (UT-CFG-024) | getSearchFunctionがキャッシュから同じ関数を返すこと | E-02 L40-44 | ○ |
| C-25 (UT-CFG-025) | stopDirectory=undefinedでも動作すること | E-02 L38 | ○ |
| C-26 (UT-CFG-026) | searchPrettierConfigが設定ファイルパスを返すこと | E-02 L54-64 | ○ |
| C-27 (UT-CFG-027) | searchPrettierConfigが設定なしでvoidを返すこと | E-02 L63 | ○ |
| C-28 (UT-CFG-028) | startDirectory空でprocess.cwd()が使用されること | E-02 L55-57 | ○ |

### load-external-config.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 (UT-CFG-029) | CommonJSモジュールをrequireで読み込めること | E-03 L18-25 | ○ |
| C-30 (UT-CFG-030) | ESモジュールをimportで読み込めること | E-03 L32-33 | ○ |
| C-31 (UT-CFG-031) | Node.js v22.12以降でdefaultが返ること | E-03 L22-24 | △ |
| C-32 (UT-CFG-032) | 無視すべきでないエラーコードでエラーがスローされること | E-03 L27-29 | ○ |
| C-33 (UT-CFG-033) | MODULE_NOT_FOUND時にimportにフォールバックすること | E-03 L4-9, L26-30 | ○ |

### config-searcher.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-34 (UT-CFG-034) | filter関数がpackage.jsonでprettier設定ありでtrueを返すこと | E-04 L43-49 | ○ |
| C-35 (UT-CFG-035) | filter関数がpackage.jsonでprettier設定なしでfalseを返すこと | E-04 L44-48 | ○ |
| C-36 (UT-CFG-036) | filter関数がpackage.yamlでprettier設定ありでtrueを返すこと | E-04 L51-57 | ○ |
| C-37 (UT-CFG-037) | filter関数がpackage.yamlでprettier設定なしでfalseを返すこと | E-04 L52-56 | ○ |
| C-38 (UT-CFG-038) | filter関数が他の設定ファイルでtrueを返すこと | E-04 L59 | ○ |
| C-39 (UT-CFG-039) | filter関数がpackage.json読み込みエラー時falseを返すこと | E-04 L46-48 (catch) | ○ |
| C-40 (UT-CFG-040) | getSearcherがFileSearcherインスタンスを返すこと | E-04 L62-64 | ○ |
| C-41 (UT-CFG-041) | getSearcherがstopDirectory=undefinedでも動作すること | E-04 L63 | ○ |

### load-config.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 (UT-CFG-042) | loadConfigがpackage.jsonから設定を読み込めること | E-05 L10-12 | ○ |
| C-43 (UT-CFG-043) | loadConfigがpackage.yamlから設定を読み込めること | E-05 L13-14 | ○ |
| C-44 (UT-CFG-044) | loadConfigが拡張子に応じたローダーを使用すること | E-05 L10-15 | ○ |
| C-45 (UT-CFG-045) | loadConfigが未対応拡張子でエラーをスローすること | E-05 L17-21 | ○ |
| C-46 (UT-CFG-046) | loadConfigが空設定でundefinedを返すこと | E-05 L25-27 | ○ |
| C-47 (UT-CFG-047) | loadConfigが文字列設定で外部設定を読み込むこと | E-05 L38-40 | ○ |
| C-48 (UT-CFG-048) | loadConfigがオブジェクト以外でTypeErrorをスローすること | E-05 L42-47 | ○ |
| C-49 (UT-CFG-049) | loadConfigが$schemaを削除すること | E-05 L49 | ○ |

### editorconfig/index.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 (UT-CFG-050) | clearEditorconfigCacheがキャッシュをクリアすること | E-06 L18-21 | ○ |
| C-51 (UT-CFG-051) | loadEditorconfigがEditorConfig設定を読み込めること | E-06 L35-47 | ○ |
| C-52 (UT-CFG-052) | loadEditorconfigが相対パスを絶対パスに解決すること | E-06 L36 | ○ |
| C-53 (UT-CFG-053) | loadEditorconfigがキャッシュを使用すること | E-06 L38-44 | ○ |
| C-54 (UT-CFG-054) | shouldCache=falseでもキャッシュに保存されること | E-06 L39 コメント | ○ |
| C-55 (UT-CFG-055) | loadEditorconfigInternalがプロジェクトルートを検索すること | E-06 L23-29 | △ |

### editorconfig-to-prettier.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 (UT-CFG-056) | indent_style=spaceでuseTabs=falseになること | E-07 L19-20 | ○ |
| C-57 (UT-CFG-057) | indent_style=tabでuseTabs=trueになること | E-07 L21-23 | ○ |
| C-58 (UT-CFG-058) | indent_size=tabでuseTabs=trueになること | E-07 L21 | ○ |
| C-59 (UT-CFG-059) | useTabs=falseかつindent_sizeでtabWidthが設定されること | E-07 L26-27 | ○ |
| C-60 (UT-CFG-060) | tab_widthでtabWidthが設定されること | E-07 L28-30 | ○ |
| C-61 (UT-CFG-061) | max_line_length=offでprintWidth=Infinityになること | E-07 L32-33 | ○ |
| C-62 (UT-CFG-062) | max_line_lengthでprintWidthが設定されること | E-07 L34-36 | ○ |
| C-63 (UT-CFG-063) | quote_type=singleでsingleQuote=trueになること | E-07 L39-40 | ○ |
| C-64 (UT-CFG-064) | quote_type=doubleでsingleQuote=falseになること | E-07 L41-43 | ○ |
| C-65 (UT-CFG-065) | end_of_line=lfでendOfLine=lfになること | E-07 L45-47 | ○ |
| C-66 (UT-CFG-066) | end_of_line=crlfでendOfLine=crlfになること | E-07 L45-47 | ○ |
| C-67 (UT-CFG-067) | end_of_line=crでendOfLine=crになること | E-07 L45-47 | ○ |
| C-68 (UT-CFG-068) | editorConfig=nullでundefinedが返ること | E-07 L4-6 | ○ |
| C-69 (UT-CFG-069) | 変換結果が空オブジェクトでundefinedが返ること | E-07 L49-51 | ○ |
| C-70 (UT-CFG-070) | isPositiveIntegerが正の整数でtrueを返すこと | E-07 L1 | ○ |
| C-71 (UT-CFG-071) | isPositiveIntegerが0でfalseを返すこと | E-07 L1 (value > 0) | ○ |
| C-72 (UT-CFG-072) | isPositiveIntegerが負の整数でfalseを返すこと | E-07 L1 | ○ |
| C-73 (UT-CFG-073) | isPositiveIntegerが小数でfalseを返すこと | E-07 L1 (isSafeInteger) | ○ |
| C-74 (UT-CFG-074) | isPositiveIntegerがMAX_SAFE_INTEGERでtrueを返すこと | E-07 L1 | ○ |
| C-75 (UT-CFG-075) | isPositiveIntegerがMAX_SAFE_INTEGER+1でfalseを返すこと | E-07 L1 (isSafeInteger) | ○ |

### resolve-config.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 (UT-CFG-076) | clearCacheがすべてのキャッシュをクリアすること | E-08 L15-18 | ○ |
| C-77 (UT-CFG-077) | loadEditorconfigがeditorconfig=trueで読み込むこと | E-08 L27-34 | ○ |
| C-78 (UT-CFG-078) | loadEditorconfigがeditorconfig=falseでundefinedを返すこと | E-08 L28-29 | ○ |
| C-79 (UT-CFG-079) | loadEditorconfigがfile空でundefinedを返すこと | E-08 L28 | ○ |
| C-80 (UT-CFG-080) | loadPrettierConfigが設定を読み込めること | E-08 L47-64 | ○ |
| C-81 (UT-CFG-081) | loadPrettierConfigがoptions.configで指定したファイルを使用すること | E-08 L49-50 | ○ |
| C-82 (UT-CFG-082) | loadPrettierConfigがURLオブジェクトを処理できること | E-08 L60 (toPath) | ○ |
| C-83 (UT-CFG-083) | loadPrettierConfigが設定なしでundefinedを返すこと | E-08 L56-58 | ○ |
| C-84 (UT-CFG-084) | resolveConfigが設定をマージすること | E-08 L74-86 | ○ |
| C-85 (UT-CFG-085) | resolveConfigでPrettier設定がEditorConfigを上書きすること | E-08 L83-86 (spread順序) | ○ |
| C-86 (UT-CFG-086) | resolveConfigが設定なしでnullを返すこと | E-08 L79-81 | ○ |
| C-87 (UT-CFG-087) | resolveConfigがpluginsの相対パスを解決すること | E-08 L88-94 | ○ |
| C-88 (UT-CFG-088) | resolveConfigがpluginsの非相対パスを維持すること | E-08 L90 (startsWith('.')) | ○ |
| C-89 (UT-CFG-089) | resolveConfigがURLオブジェクトを処理できること | E-08 L72 (toPath) | ○ |
| C-90 (UT-CFG-090) | resolveConfigがuseCache=trueをデフォルトにすること | E-08 L71 | ○ |
| C-91 (UT-CFG-091) | resolveConfigFileが設定ファイルパスを返すこと | E-08 L102-108 | ○ |
| C-92 (UT-CFG-092) | resolveConfigFileが設定なしでnullを返すこと | E-08 L107 | ○ |
| C-93 (UT-CFG-093) | resolveConfigFileがundefinedでカレントディレクトリから検索すること | E-08 L103-105 | ○ |
| C-94 (UT-CFG-094) | resolveConfigFileがURLオブジェクトを処理できること | E-08 L104 (toPath) | ○ |
| C-95 (UT-CFG-095) | mergeOverridesがオーバーライドをマージすること | E-08 L110-129 | ○ |
| C-96 (UT-CFG-096) | mergeOverridesがマッチしないオーバーライドを適用しないこと | E-08 L116-125 | ○ |
| C-97 (UT-CFG-097) | mergeOverridesがexcludeFilesで除外すること | E-08 L119 (pathMatchesGlobs呼び出し) | ○ |
| C-98 (UT-CFG-098) | mergeOverridesがnull/undefinedで空オブジェクトを返すこと | E-08 L111-112 | ○ |
| C-99 (UT-CFG-099) | mergeOverridesがfilePathなしでオーバーライドを適用しないこと | E-08 L113 | ○ |
| C-100 (UT-CFG-100) | pathMatchesGlobsがglobパターンにマッチすること | E-08 L132-152 | ○ |
| C-101 (UT-CFG-101) | pathMatchesGlobsがスラッシュ含むパターンでマッチすること | E-08 L136-138, L146-150 | ○ |
| C-102 (UT-CFG-102) | pathMatchesGlobsがexcludedPatternsで除外すること | E-08 L142, L148 (ignore) | ○ |
| C-103 (UT-CFG-103) | pathMatchesGlobsが単一パターンを処理すること | E-08 L133 | ○ |
| C-104 (UT-CFG-104) | pathMatchesGlobsがドットファイルにマッチすること | E-08 L144, L150 (dot: true) | ○ |

### find-project-root.js 関連テストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-105 (UT-CFG-105) | findProjectRootが.gitディレクトリの親を返すこと | E-09 L7, L18-25 | ○ |
| C-106 (UT-CFG-106) | findProjectRootが.hgディレクトリの親を返すこと | E-09 L7 | ○ |
| C-107 (UT-CFG-107) | findProjectRootが見つからない場合undefinedを返すこと | E-09 L24 | ○ |
| C-108 (UT-CFG-108) | findProjectRootがキャッシュを使用すること | E-09 L21 (cache option) | ○ |
| C-109 (UT-CFG-109) | clearFindProjectRootCacheがキャッシュをクリアすること | E-09 L27-29 | △ |
| C-110 (UT-CFG-110) | clearFindProjectRootCacheがsearcher未初期化でもエラーにならないこと | E-09 L28 (オプショナルチェーン ?.) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-31 (UT-CFG-031)**：`process.features.require_module`はNode.js v22.12以降の機能であり、テスト環境がその条件を満たすかは実行時まで不明
  - 候補：Node.js v22.12以降の環境でのテスト / モック使用
- **C-55 (UT-CFG-055)**：loadEditorconfigInternal関数は内部関数であり、直接テストするよりloadEditorconfigを通じた統合テストが適切な可能性
  - 候補：統合テストとして実施 / 内部関数のエクスポート検討
- **C-109 (UT-CFG-109)**：searcherの初期化タイミングと内部状態のテストはモジュール内部実装に依存
  - 候補：モジュールリロードによるテスト / 内部状態のリセット方法検討

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: ローダー関数群（readJson, loadYaml等）- 標準的なファイル読み込み処理
- **0 (低リスク)**: editorConfigToPrettier - 明確な変換ロジック
- **1 (中リスク)**: キャッシュ関連処理 - キャッシュの整合性確認が必要
- **1 (中リスク)**: pathMatchesGlobs - globパターンの複雑なマッチング処理
- **1 (中リスク)**: loadExternalConfig - 外部パッケージ読み込みの互換性
- **2 (高リスク)**: resolveConfig - 複数設定のマージ処理、優先順位の正確性が重要
- **2 (高リスク)**: mergeOverrides - オーバーライド条件の正確なマッチング

## 6) レビュアーチェックリスト（最小）
- [ ] loaders.jsの各ローダー関数が正しいエラーメッセージフォーマットを返すことを確認
- [ ] キャッシュ機能（shouldCache）の動作がテストで正しく検証されていることを確認
- [ ] loadExternalConfigのフォールバック動作（require -> import）が正しくテストされていることを確認
- [ ] editorConfigToPrettierの各プロパティ変換が仕様通りであることを確認
- [ ] resolveConfigのマージ優先順位（EditorConfig < Prettier設定）が正しくテストされていることを確認
- [ ] mergeOverridesのglobパターンマッチングが正しく動作することを確認
- [ ] pathMatchesGlobsのスラッシュあり/なしパターンの分岐処理が正しくテストされていることを確認
- [ ] Node.js v22.12以降の新機能（process.features.require_module）関連テストの実行環境を確認
