---
generated_at: 2026-03-01 15:30:00
metrics:
  claims_total: 137
  claims_with_evidence: 137
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：document.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：137 / 137、根拠なし：0
- 優先レビュー（高）
  1. **該当なし**：全てのテストケースがソースコードに基づいて生成されています

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

- E-01: `src/document/builders/align.js` - align, dedentToRoot, markAsRoot, dedent, addAlignmentToDoc関数の定義
- E-02: `src/document/builders/break-parent.js` - breakParent定数の定義
- E-03: `src/document/builders/cursor.js` - cursor定数の定義
- E-04: `src/document/builders/fill.js` - fill関数の定義
- E-05: `src/document/builders/group.js` - group, conditionalGroup関数の定義
- E-06: `src/document/builders/if-break.js` - ifBreak関数の定義
- E-07: `src/document/builders/indent.js` - indent関数の定義
- E-08: `src/document/builders/indent-if-break.js` - indentIfBreak関数の定義
- E-09: `src/document/builders/join.js` - join関数の定義
- E-10: `src/document/builders/label.js` - label関数の定義
- E-11: `src/document/builders/line.js` - line, softline, hardline, literalline定数の定義
- E-12: `src/document/builders/line-suffix.js` - lineSuffix関数の定義
- E-13: `src/document/builders/line-suffix-boundary.js` - lineSuffixBoundary定数の定義
- E-14: `src/document/builders/trim.js` - trim定数の定義
- E-15: `src/document/builders/types.js` - DOC_TYPE_*定数の定義
- E-16: `src/document/utilities/get-doc-type.js` - getDocType関数の定義
- E-17: `src/document/utilities/traverse-doc.js` - traverseDoc関数の定義
- E-18: `src/document/utilities/invalid-doc-error.js` - InvalidDocErrorクラスの定義
- E-19: `src/document/utilities/assert-doc.js` - assertDoc, assertDocArray, assertDocFillParts, assertAlignType関数の定義
- E-20: `src/document/utilities/index.js` - mapDoc, findInDoc, willBreak, propagateBreaks, removeLines, stripTrailingHardline, replaceEndOfLine, canBreak, cleanDoc, isEmptyDoc, inheritLabel関数の定義
- E-21: `src/document/printer/printer.js` - printDocToString, fits関数の定義
- E-22: `src/document/printer/indent.js` - makeIndent, makeAlign, generateIndent, ROOT_INDENT定数の定義
- E-23: `src/document/printer/print-result.js` - PrintResultクラスの定義
- E-24: `src/document/printer/trim-indentation.js` - trimIndentation関数の定義
- E-25: `src/document/debug.js` - flattenDoc, printDocToDebug関数の定義
- E-26: `src/document/index.js` - モジュールエクスポートの定義
- E-27: `src/document/public.js` - パブリックAPIの定義

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

### builders/align.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | align関数は数値型alignTypeで正常にAlignオブジェクトを生成する | E-01 | ○ |
| C-02 | align関数は文字列型alignTypeで正常にAlignオブジェクトを生成する | E-01 | ○ |
| C-03 | align関数はroot型alignTypeで正常にAlignオブジェクトを生成する | E-01 | ○ |
| C-04 | align関数は不正なalignTypeでエラーをスローする | E-01, E-19 | ○ |
| C-05 | dedentToRoot関数はNEGATIVE_INFINITYを持つAlignオブジェクトを生成する | E-01 | ○ |
| C-06 | markAsRoot関数はroot型のAlignオブジェクトを生成する | E-01 | ○ |
| C-07 | dedent関数は-1を持つAlignオブジェクトを生成する | E-01 | ○ |
| C-08 | addAlignmentToDoc関数はsize > 0で正しくインデントとアライメントを追加する | E-01 | ○ |
| C-09 | addAlignmentToDoc関数はsize=0で元のdocをそのまま返す | E-01 | ○ |
| C-10 | addAlignmentToDoc関数はsizeがtabWidthより小さい場合にalignのみを適用する | E-01 | ○ |

### builders/fill.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | fill関数はpartsからFillオブジェクトを正しく生成する | E-04 | ○ |
| C-12 | fill関数は空配列でparts: []のFillオブジェクトを生成する | E-04 | ○ |
| C-13 | fill関数は奇数インデックスに非line要素がある場合にエラーをスローする | E-04, E-19 | ○ |

### builders/group.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-14 | group関数は基本的なGroupオブジェクトを生成する | E-05 | ○ |
| C-15 | group関数はshouldBreakオプションを反映する | E-05 | ○ |
| C-16 | group関数はidオプションを反映する | E-05 | ○ |
| C-17 | group関数はexpandedStatesオプションを反映する | E-05 | ○ |
| C-18 | conditionalGroup関数はstatesの最初の要素をcontentsとして設定する | E-05 | ○ |
| C-19 | conditionalGroup関数はstatesが1要素の場合も正しく処理する | E-05 | ○ |

### builders/if-break.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | ifBreak関数はbreakContentsのみ指定した場合にIfBreakオブジェクトを生成する | E-06 | ○ |
| C-21 | ifBreak関数はbreakContentsとflatContentsの両方を正しく設定する | E-06 | ○ |
| C-22 | ifBreak関数はgroupIdオプションを反映する | E-06 | ○ |

### builders/indent.js, indent-if-break.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | indent関数はIndentオブジェクトを正しく生成する | E-07 | ○ |
| C-24 | indent関数はネストしたDocをcontentsに設定できる | E-07 | ○ |
| C-25 | indentIfBreak関数はIndentIfBreakオブジェクトを正しく生成する | E-08 | ○ |
| C-26 | indentIfBreak関数はnegateオプションを反映する | E-08 | ○ |

### builders/join.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | join関数はseparatorでdocsを正しく結合する | E-09 | ○ |
| C-28 | join関数はdocsが空配列の場合に空配列を返す | E-09 | ○ |
| C-29 | join関数はdocsが1要素の場合にseparatorなしで返す | E-09 | ○ |

### builders/label.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | label関数はtruthyなlabelでLabelオブジェクトを生成する | E-10 | ○ |
| C-31 | label関数はfalsyなlabelの場合はcontentsをそのまま返す | E-10 | ○ |
| C-32 | label関数はlabel=falseの場合はcontentsをそのまま返す | E-10 | ○ |

### builders/line-suffix.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | lineSuffix関数はLineSuffixオブジェクトを正しく生成する | E-12 | ○ |

### utilities/get-doc-type.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-34 | getDocType関数は文字列に対して'string'を返す | E-16 | ○ |
| C-35 | getDocType関数は配列に対して'array'を返す | E-16 | ○ |
| C-36 | getDocType関数はDocオブジェクトに対して正しいtypeを返す | E-16 | ○ |
| C-37 | getDocType関数はnullに対してundefinedを返す | E-16 | ○ |
| C-38 | getDocType関数はundefinedに対してundefinedを返す | E-16 | ○ |
| C-39 | getDocType関数は不正なtypeを持つオブジェクトに対してundefinedを返す | E-16 | ○ |

### utilities/traverse-doc.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | traverseDoc関数は全てのノードに対してonEnterを呼び出す | E-17 | ○ |
| C-41 | traverseDoc関数はonEnterがfalseを返した場合に子要素をスキップする | E-17 | ○ |
| C-42 | traverseDoc関数はonExitが指定された場合に各ノードで呼び出す | E-17 | ○ |
| C-43 | traverseDoc関数はshouldTraverseConditionalGroupsがtrueの場合にexpandedStatesをトラバースする | E-17 | ○ |
| C-44 | traverseDoc関数は不正なDocに対してInvalidDocErrorをスローする | E-17, E-18 | ○ |

### utilities/invalid-doc-error.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-45 | InvalidDocErrorは不正なDocに対して適切なエラーメッセージを生成する | E-18 | ○ |
| C-46 | InvalidDocErrorはnullに対して適切なエラーメッセージを生成する | E-18 | ○ |

### utilities/index.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | mapDoc関数は各ノードに対してコールバックを適用する | E-20 | ○ |
| C-48 | mapDoc関数はDocオブジェクトの子要素も再帰的に処理する | E-20 | ○ |
| C-49 | mapDoc関数は同じサブツリーが複数回出現した場合にキャッシュを使用する | E-20 | ○ |
| C-50 | findInDoc関数は条件に一致するDocが見つかった場合にその値を返す | E-20 | ○ |
| C-51 | findInDoc関数は条件に一致するDocがない場合にdefaultValueを返す | E-20 | ○ |
| C-52 | willBreak関数はbreakParentを含むDocに対してtrueを返す | E-20 | ○ |
| C-53 | willBreak関数はhardlineを含むDocに対してtrueを返す | E-20 | ○ |
| C-54 | willBreak関数はbreak: trueのgroupを含むDocに対してtrueを返す | E-20 | ○ |
| C-55 | willBreak関数は改行要素を含まないDocに対してfalseを返す | E-20 | ○ |
| C-56 | propagateBreaks関数はbreakParentによって親グループにbreakを伝播する | E-20 | ○ |
| C-57 | propagateBreaks関数はconditionalGroupにはbreakを伝播しない | E-20 | ○ |
| C-58 | removeLines関数はsoftlineを空文字に変換する | E-20 | ○ |
| C-59 | removeLines関数はlineをスペースに変換する | E-20 | ○ |
| C-60 | removeLines関数はhardlineを除去しない | E-20 | ○ |
| C-61 | removeLines関数はifBreakのflatContentsを返す | E-20 | ○ |
| C-62 | stripTrailingHardline関数は末尾のhardlineを除去する | E-20 | ○ |
| C-63 | stripTrailingHardline関数はネストした構造の末尾hardlineも除去する | E-20 | ○ |
| C-64 | stripTrailingHardline関数はhardlineがない場合は元のDocをそのまま返す | E-20 | ○ |
| C-65 | replaceEndOfLine関数は文字列内の改行をliterallineに置換する | E-20 | ○ |
| C-66 | replaceEndOfLine関数はカスタム置換文字を使用できる | E-20 | ○ |
| C-67 | canBreak関数はline要素を含むDocに対してtrueを返す | E-20 | ○ |
| C-68 | canBreak関数はline要素を含まないDocに対してfalseを返す | E-20 | ○ |
| C-69 | cleanDoc関数は空のfillを空文字に変換する | E-20 | ○ |
| C-70 | cleanDoc関数はネストした同一groupを統合する | E-20 | ○ |
| C-71 | cleanDoc関数は連続した文字列を結合する | E-20 | ○ |
| C-72 | isEmptyDoc関数は空文字列のみのDocに対してtrueを返す | E-20 | ○ |
| C-73 | isEmptyDoc関数は内容のあるDocに対してfalseを返す | E-20 | ○ |
| C-74 | inheritLabel関数はLabelを持つDocの場合、contentsに関数を適用する | E-20 | ○ |
| C-75 | inheritLabel関数はLabelを持たないDocの場合、直接関数を適用する | E-20 | ○ |

### utilities/assert-doc.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | assertDoc関数は有効なDocに対してエラーをスローしない | E-19 | ○ |
| C-77 | assertDocArray関数は有効なDoc配列に対してエラーをスローしない | E-19 | ○ |
| C-78 | assertDocArray関数は配列でない値に対してTypeErrorをスローする | E-19 | ○ |
| C-79 | assertDocArray関数はoptional=trueでundefinedが渡された場合にエラーをスローしない | E-19 | ○ |
| C-80 | assertDocFillParts関数は有効なfill partsに対してエラーをスローしない | E-19 | ○ |
| C-81 | assertDocFillParts関数は奇数インデックスに非line要素がある場合にErrorをスローする | E-19 | ○ |
| C-82 | assertAlignType関数は数値型に対してエラーをスローしない | E-19 | ○ |
| C-83 | assertAlignType関数は文字列型に対してエラーをスローしない | E-19 | ○ |
| C-84 | assertAlignType関数は不正な型に対してTypeErrorをスローする | E-19 | ○ |

### printer/printer.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-85 | printDocToString関数は単純な文字列Docを正しく出力する | E-21 | ○ |
| C-86 | printDocToString関数は配列Docを連結して出力する | E-21 | ○ |
| C-87 | printDocToString関数はindentを正しく適用する | E-21 | ○ |
| C-88 | printDocToString関数はgroupをフラットモードで出力する | E-21 | ○ |
| C-89 | printDocToString関数はgroupをブレークモードで出力する | E-21 | ○ |
| C-90 | printDocToString関数はfillが行を正しく埋める | E-21 | ○ |
| C-91 | printDocToString関数はifBreakがモードに応じて正しい内容を出力する | E-21 | ○ |
| C-92 | printDocToString関数はlineSuffixが行末に出力する | E-21 | ○ |
| C-93 | printDocToString関数はcursorの位置を正しく記録する | E-21 | ○ |
| C-94 | printDocToString関数はtrimが末尾の空白を除去する | E-21 | ○ |
| C-95 | printDocToString関数はalignを正しく適用する | E-21 | ○ |
| C-96 | printDocToString関数はendOfLineオプションを反映する | E-21 | ○ |
| C-97 | printDocToString関数はconditionalGroupが最適な状態を選択する | E-21 | ○ |
| C-98 | printDocToString関数はindentIfBreakがモードに応じて動作する | E-21 | ○ |
| C-99 | printDocToString関数は不正なDocに対してInvalidDocErrorをスローする | E-21, E-18 | ○ |
| C-100 | fits関数はremainingWidthが無限大の場合にtrueを返す | E-21 | ○ |
| C-101 | fits関数は内容が幅に収まる場合にtrueを返す | E-21 | ○ |
| C-102 | fits関数は内容が幅に収まらない場合にfalseを返す | E-21 | ○ |
| C-103 | fits関数はhardlineを含む場合にtrueを返す | E-21 | ○ |

### printer/indent.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-104 | makeIndent関数はスペースでインデントを生成する | E-22 | ○ |
| C-105 | makeIndent関数はタブでインデントを生成する | E-22 | ○ |
| C-106 | makeAlign関数は数値指定のアライメントを生成する | E-22 | ○ |
| C-107 | makeAlign関数はNEGATIVE_INFINITYでルートインデントを返す | E-22 | ○ |
| C-108 | makeAlign関数は文字列指定のアライメントを生成する | E-22 | ○ |
| C-109 | makeAlign関数はroot型で現在のインデントをrootとして記録する | E-22 | ○ |
| C-110 | makeAlign関数は負の数でデデントを適用する | E-22 | ○ |
| C-111 | generateIndent関数は複数のインデントコマンドを正しく処理する | E-22 | ○ |

### printer/print-result.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-112 | PrintResult.write関数はテキストを追加する | E-23 | ○ |
| C-113 | PrintResult.trim関数は末尾の空白を削除してカウントを返す | E-23 | ○ |
| C-114 | PrintResult.markPosition関数はカーソル位置を記録する | E-23 | ○ |
| C-115 | PrintResult.markPosition関数は3回以上呼び出された場合にエラーをスローする | E-23 | ○ |
| C-116 | PrintResult.finish関数は最終的なテキストと位置を返す | E-23 | ○ |

### printer/trim-indentation.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-117 | trimIndentation関数は末尾のスペースを削除する | E-24 | ○ |
| C-118 | trimIndentation関数は末尾のタブを削除する | E-24 | ○ |
| C-119 | trimIndentation関数は空白がない場合はそのまま返す | E-24 | ○ |
| C-120 | trimIndentation関数は空文字列の場合はそのまま返す | E-24 | ○ |

### debug.js関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-121 | flattenDoc関数はネストした配列をフラット化する | E-25 | ○ |
| C-122 | flattenDoc関数は空文字列を除去する | E-25 | ○ |
| C-123 | flattenDoc関数はnullやundefinedを空文字列に変換する | E-25 | ○ |
| C-124 | flattenDoc関数はifBreakの内容もフラット化する | E-25 | ○ |
| C-125 | printDocToDebug関数は文字列をJSON形式で出力する | E-25 | ○ |
| C-126 | printDocToDebug関数はlineを'line'として出力する | E-25 | ○ |
| C-127 | printDocToDebug関数はsoftlineを'softline'として出力する | E-25 | ○ |
| C-128 | printDocToDebug関数はhardlineを'hardline'として出力する | E-25 | ○ |
| C-129 | printDocToDebug関数はindentを'indent(...)'形式で出力する | E-25 | ○ |
| C-130 | printDocToDebug関数はgroupを'group(...)'形式で出力する | E-25 | ○ |
| C-131 | printDocToDebug関数はfillを'fill([...])'形式で出力する | E-25 | ○ |
| C-132 | printDocToDebug関数はifBreakを'ifBreak(...)'形式で出力する | E-25 | ○ |
| C-133 | printDocToDebug関数はalignを'align(...)'形式で出力する | E-25 | ○ |
| C-134 | printDocToDebug関数はdedentToRootを'dedentToRoot(...)'形式で出力する | E-25 | ○ |
| C-135 | printDocToDebug関数はlabelを'label(...)'形式で出力する | E-25 | ○ |
| C-136 | printDocToDebug関数はgroupIdをSymbol形式で出力する | E-25 | ○ |
| C-137 | printDocToDebug関数は不明なdoc typeに対してエラーをスローする | E-25 | ○ |

## 4) 不足情報（Unknown / Missing）
- **該当なし**：全てのテストケースがソースコードに基づいて生成されており、根拠が確認できています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全てのテストケースがソースコードの実装に基づいて生成されています。
- documentモジュールはPrettierのコア機能であるドキュメントIR（中間表現）を構築・処理するモジュールであり、テストの網羅性が重要です。
- NODE_ENV !== 'production'時のみ有効なバリデーション関数（assertDoc等）のテストは、開発環境でのみ実行可能です。

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの主要な関数・メソッドを網羅しているか確認
- [ ] 正常系・異常系・境界値のバランスが適切か確認
- [ ] 優先度（高/中/低）の設定が適切か確認
- [ ] 前提条件と期待結果が明確で再現可能か確認
- [ ] NODE_ENV依存のテストケースが適切に識別されているか確認
- [ ] printerモジュールの複雑なロジック（fits, printDocToString）のテストが十分か確認
