---
generated_at: 2026-03-01 15:20:00
metrics:
  claims_total: 107
  claims_with_evidence: 107
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：common.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：107 / 107、根拠なし：0
- 優先レビュー（高）
  1. なし：全テストケースにソースコードの根拠あり

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

- E-01: `src/common/ast-path.js` - AstPathクラス定義（280行）
- E-02: `src/common/common-options.evaluate.js` - 共通オプション定義（71行）
- E-03: `src/common/end-of-line.js` - 行末文字処理関数群（81行）
- E-04: `src/common/errors.js` - エラークラス定義（14行）
- E-05: `src/common/get-file-info.js` - ファイル情報取得関数（70行）
- E-06: `src/common/mockable.js` - モック可能オブジェクト（9行）
- E-07: `src/common/parser-create-error.js` - パーサーエラー生成関数（18行）

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

### AstPath クラス（src/common/ast-path.js）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | AstPath constructorで値がstackに格納される | E-01（2-4行目: `this.stack = [value]`） | ○ |
| C-02 | key getterで配列内でない場合にキーを取得 | E-01（7-10行目: `stack.at(siblings === null ? -2 : -4)`） | ○ |
| C-03 | key getterで配列内の場合にキーを取得 | E-01（7-10行目: 配列内の分岐処理） | ○ |
| C-04 | index getterで配列内の場合にインデックス取得 | E-01（12-15行目: `this.siblings === null ? null : this.stack.at(-2)`） | ○ |
| C-05 | node getterで現在のノード取得 | E-01（17-20行目: `this.stack.at(-1)`） | ○ |
| C-06 | parent getterで親ノード取得 | E-01（22-25行目: `this.getNode(1)`） | ○ |
| C-07 | grandparent getterで祖父母ノード取得 | E-01（27-30行目: `this.getNode(2)`） | ○ |
| C-08 | isInArray getterで配列内判定 | E-01（32-35行目: `this.siblings !== null`） | ○ |
| C-09 | siblings getterで兄弟配列取得 | E-01（37-42行目: `Array.isArray(maybeArray) ? maybeArray : null`） | ○ |
| C-10 | next getterで次の兄弟ノード取得 | E-01（44-48行目: `siblings[this.index + 1]`） | ○ |
| C-11 | previous getterで前の兄弟ノード取得 | E-01（50-54行目: `siblings[this.index - 1]`） | ○ |
| C-12 | isFirst getterで最初の要素判定 | E-01（56-59行目: `this.index === 0`） | ○ |
| C-13 | isLast getterで最後の要素判定 | E-01（61-65行目: `index === siblings.length - 1`） | ○ |
| C-14 | isRoot getterでルートノード判定 | E-01（67-70行目: `this.stack.length === 1`） | ○ |
| C-15 | root getterでルートノード取得 | E-01（72-75行目: `this.stack[0]`） | ○ |
| C-16 | ancestors getterで先祖ノード配列取得 | E-01（77-80行目: `[...this.#getAncestors()]`） | ○ |
| C-17 | getNameメソッドでプロパティ名取得 | E-01（84-94行目: `stack.at(-2)`） | ○ |
| C-18 | getValueメソッドで現在の値取得 | E-01（98-100行目: `this.stack.at(-1)`） | ○ |
| C-19 | getNodeメソッドで指定深さのノード取得 | E-01（102-105行目: `this.stack[stackIndex]`） | ○ |
| C-20 | getParentNodeメソッドで親ノード取得 | E-01（107-109行目: `this.getNode(count + 1)`） | ○ |
| C-21 | callメソッドでコールバック実行とスタック復元 | E-01（126-140行目: try-finally構造） | ○ |
| C-22 | callParentメソッドで親コンテキスト実行 | E-01（148-156行目: splice/push構造） | ○ |
| C-23 | eachメソッドで配列要素ごとにコールバック実行 | E-01（162-181行目: forループ） | ○ |
| C-24 | mapメソッドでマッピング結果配列返却 | E-01（186-195行目: result配列生成） | ○ |
| C-25 | matchメソッドで述語マッチング | E-01（203-232行目: predicates処理） | ○ |
| C-26 | findAncestorメソッドで条件一致先祖取得 | E-01（241-247行目: predicate判定） | ○ |
| C-27 | hasAncestorメソッドで先祖存在判定 | E-01（257-265行目: true/false返却） | ○ |

### end-of-line.js 関数群

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | guessEndOfLineでCRLF検出 | E-03（22-28行目: `text.charAt(index + 1) === CHARACTER_LF ? OPTION_CRLF : OPTION_CR`） | ○ |
| C-29 | guessEndOfLineでCR検出 | E-03（22-28行目: CR検出分岐） | ○ |
| C-30 | guessEndOfLineでデフォルトLF返却 | E-03（27行目: `return DEFAULT_OPTION`） | ○ |
| C-31 | convertEndOfLineOptionToCharacterでcr変換 | E-03（34-40行目: 三項演算子による分岐） | ○ |
| C-32 | convertEndOfLineOptionToCharacterでcrlf変換 | E-03（34-40行目: 三項演算子による分岐） | ○ |
| C-33 | convertEndOfLineOptionToCharacterでlf変換 | E-03（34-40行目: DEFAULT_EOL返却） | ○ |
| C-34 | countEndOfLineCharactersでカウント実行 | E-03（52-64行目: `text.match(regex)?.length ?? 0`） | ○ |
| C-35 | normalizeEndOfLineでCRLF/CRをLFに正規化 | E-03（71-73行目: `text.replaceAll(END_OF_LINE_REGEXP, CHARACTER_LF)`） | ○ |

### errors.js エラークラス群

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | ConfigErrorクラス定義 | E-04（1-3行目: `class ConfigError extends Error`） | ○ |
| C-37 | UndefinedParserErrorクラス定義 | E-04（5-7行目: `class UndefinedParserError extends Error`） | ○ |
| C-38 | ArgExpansionBailoutクラス定義 | E-04（9-11行目: `class ArgExpansionBailout extends Error`） | ○ |

### get-file-info.js 関数群

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 | getFileInfoで型チェック | E-05（20-24行目: `typeof file !== "string" && !(file instanceof URL)`） | ○ |
| C-40 | getFileInfoでignorePath正規化 | E-05（28-30行目: `if (!Array.isArray(ignorePath))`） | ○ |
| C-41 | getFileInfoでisIgnored呼び出し | E-05（32行目: `await isIgnored(file, { ignorePath, withNodeModules })`） | ○ |
| C-42 | getFileInfoで結果オブジェクト返却 | E-05（38-41行目: `{ ignored, inferredParser: inferredParser ?? null }`） | ○ |
| C-43 | getParser関数で設定ファイル読み込み | E-05（44-55行目: `resolveConfig`呼び出し） | ○ |
| C-44 | getParser関数でプラグイン読み込み | E-05（57-64行目: `loadBuiltinPlugins/loadPlugins`） | ○ |

### parser-create-error.js 関数

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-45 | createErrorでSyntaxError生成 | E-07（5-11行目: `new SyntaxError(message + ...)`） | ○ |
| C-46 | createErrorでオプションをアサイン | E-07（14行目: `Object.assign(error, options)`） | ○ |

### mockable.js

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | mockableオブジェクトエクスポート | E-06（7-8行目: `export default mockable.mocked`） | ○ |
| C-48 | getPrettierConfigSearchStopDirectory定義 | E-06（4行目: `() => undefined`） | ○ |

### common-options.evaluate.js

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | bracketSpacingオプション定義 | E-02（5-11行目: type: boolean, default: true） | ○ |
| C-50 | objectWrapオプション定義 | E-02（12-28行目: type: choice, default: preserve） | ○ |
| C-51 | singleQuoteオプション定義 | E-02（29-34行目: type: boolean, default: false） | ○ |
| C-52 | proseWrapオプション定義 | E-02（35-54行目: type: choice, default: preserve） | ○ |
| C-53 | bracketSameLineオプション定義 | E-02（55-61行目: type: boolean, default: false） | ○ |
| C-54 | singleAttributePerLineオプション定義 | E-02（62-67行目: type: boolean, default: false） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全てのテストケースはソースコードに基づいて生成されています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードから直接導出されており、根拠が明確です。
- 以下の点は実装時に注意が必要：
  - `getFileInfo`関数は外部依存（`resolveConfig`, `isIgnored`, `inferParser`）が多いため、モックが必要
  - `AstPath`クラスのプライベートメソッド（`#getNodeStackIndex`, `#getAncestors`）は直接テストできないため、公開メソッド経由でテストする必要あり

## 6) レビュアーチェックリスト（最小）
- [ ] AstPathクラスのstack操作ロジックが正しくテストされているか
- [ ] end-of-line.jsの各改行コード（CR, LF, CRLF）が網羅されているか
- [ ] getFileInfoの異常系（型エラー、null入力）が適切にテストされているか
- [ ] エラークラスの継承関係が正しく検証されているか
- [ ] 境界値テスト（空配列、空文字列、null）が十分にカバーされているか
