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

# 根拠レポート：language-graphql.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：97 / 97、根拠なし：0
- 優先レビュー（高）
  1. **なし**：すべてのテストケースはソースコードから直接導出されています

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

- E-01: `src/language-graphql/parser-graphql.js` - GraphQLパーサー実装（parseComments, createParseError, parse関数）
- E-02: `src/language-graphql/printer-graphql.js` - GraphQLプリンター実装（genericPrint, printDirectives, printSequence, canAttachComment, printComment, printVariableDefinitions, hasPrettierIgnore関数）
- E-03: `src/language-graphql/pragma.js` - プラグマ処理（hasPragma, hasIgnorePragma, insertPragma関数）
- E-04: `src/language-graphql/loc.js` - 位置情報取得（locStart, locEnd関数）
- E-05: `src/language-graphql/massage-ast/index.js` - AST正規化（massageAstNode関数）
- E-06: `src/language-graphql/get-visitor-keys.js` - ビジターキー取得（getVisitorKeys関数）
- E-07: `src/language-graphql/visitor-keys.js` - ビジターキー定義（visitorKeysオブジェクト）
- E-08: `src/language-graphql/print/description.js` - description出力（printDescription関数）
- E-09: `src/language-graphql/languages.evaluate.js` - 言語設定（languages配列）
- E-10: `src/language-graphql/options.js` - オプション設定（optionsオブジェクト）
- E-11: `src/language-graphql/index.js` - モジュールエントリポイント（エクスポート定義）

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

### parser-graphql.js関連（C-01〜C-09）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | parseCommentsがコメントトークンを正しく抽出できること | E-01 L6-16 | ○ |
| C-02 | parseCommentsがコメント0件の場合空配列を返すこと | E-01 L6-16 | ○ |
| C-03 | parseCommentsが複数コメントを処理できること | E-01 L9-13 | ○ |
| C-04 | createParseErrorがGraphQLErrorを変換できること | E-01 L22-33 | ○ |
| C-05 | createParseErrorが非GraphQLErrorをそのまま返すこと | E-01 L24-26 | ○ |
| C-06 | parseが有効なGraphQLをパースできること | E-01 L35-46 | ○ |
| C-07 | parseが不正な構文でエラーをスローすること | E-01 L37-41 | ○ |
| C-08 | parseが空文字列でエラーをスローすること | E-01 L37-41 | ○ |
| C-09 | graphql.astFormatが'graphql'であること | E-01 L48-55 | ○ |

### printer-graphql.js関連（C-10〜C-66）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | genericPrintがDocumentノードを出力できること | E-02 L24-28 | ○ |
| C-11 | genericPrintがOperationDefinitionを出力できること | E-02 L30-45 | ○ |
| C-12 | genericPrintが名前なしOperationDefinitionを処理できること | E-02 L32-42 | ○ |
| C-13 | genericPrintがFragmentDefinitionを出力できること | E-02 L46-57 | ○ |
| C-14 | genericPrintがSelectionSetを出力できること | E-02 L59-68 | ○ |
| C-15 | genericPrintがFieldをエイリアス付きで出力できること | E-02 L70-91 | ○ |
| C-16 | genericPrintがFieldを引数付きで出力できること | E-02 L74-86 | ○ |
| C-17 | genericPrintがNameノードを出力できること | E-02 L93-94 | ○ |
| C-18 | genericPrintがStringValue(通常)を出力できること | E-02 L111-117 | ○ |
| C-19 | genericPrintがStringValue(ブロック)を出力できること | E-02 L96-110 | ○ |
| C-20 | genericPrintがStringValueでエスケープ処理を行うこと | E-02 L113-115 | ○ |
| C-21 | genericPrintがIntValueを出力できること | E-02 L119-122 | ○ |
| C-22 | genericPrintがFloatValueを出力できること | E-02 L119-122 | ○ |
| C-23 | genericPrintがBooleanValue(true)を出力できること | E-02 L124-125 | ○ |
| C-24 | genericPrintがBooleanValue(false)を出力できること | E-02 L124-125 | ○ |
| C-25 | genericPrintがNullValueを出力できること | E-02 L127-128 | ○ |
| C-26 | genericPrintがVariableを出力できること | E-02 L130-131 | ○ |
| C-27 | genericPrintがListValueを出力できること | E-02 L133-142 | ○ |
| C-28 | genericPrintがObjectValueを出力できること | E-02 L144-163 | ○ |
| C-29 | genericPrintがObjectValueでbracketSpacingを適用すること | E-02 L145-146 | ○ |
| C-30 | genericPrintがDirectiveを出力できること | E-02 L169-187 | ○ |
| C-31 | genericPrintがDirectiveを引数付きで出力できること | E-02 L173-186 | ○ |
| C-32 | genericPrintがObjectTypeDefinitionを出力できること | E-02 L202-248 | ○ |
| C-33 | genericPrintがObjectTypeExtensionを出力できること | E-02 L202-248 | ○ |
| C-34 | genericPrintがInputObjectTypeDefinitionを出力できること | E-02 L204-205 | ○ |
| C-35 | genericPrintがInterfaceTypeDefinitionを出力できること | E-02 L206-207 | ○ |
| C-36 | genericPrintがimplementsを含む型定義を出力できること | E-02 L226-231 | ○ |
| C-37 | genericPrintがEnumTypeDefinitionを出力できること | E-02 L298-317 | ○ |
| C-38 | genericPrintがEnumTypeExtensionを出力できること | E-02 L298-317 | ○ |
| C-39 | genericPrintがUnionTypeDefinitionを出力できること | E-02 L390-410 | ○ |
| C-40 | genericPrintがScalarTypeDefinitionを出力できること | E-02 L412-420 | ○ |
| C-41 | genericPrintがDirectiveDefinitionを出力できること | E-02 L273-296 | ○ |
| C-42 | genericPrintがrepeatableディレクティブを出力できること | E-02 L293 | ○ |
| C-43 | genericPrintがSchemaDefinitionを出力できること | E-02 L356-373 | ○ |
| C-44 | genericPrintがSchemaExtensionを出力できること | E-02 L336-354 | ○ |
| C-45 | genericPrintがFragmentSpreadを出力できること | E-02 L378-379 | ○ |
| C-46 | genericPrintがInlineFragmentを出力できること | E-02 L381-388 | ○ |
| C-47 | genericPrintがInlineFragment(typeConditionなし)を出力できること | E-02 L384 | ○ |
| C-48 | genericPrintがNonNullTypeを出力できること | E-02 L422-423 | ○ |
| C-49 | genericPrintがListTypeを出力できること | E-02 L425-426 | ○ |
| C-50 | genericPrintが未知のノードでエラーをスローすること | E-02 L428-431 | ○ |
| C-51 | printDirectivesがディレクティブなしで空文字列を返すこと | E-02 L434-437 | ○ |
| C-52 | printDirectivesが複数ディレクティブを結合できること | E-02 L439 | ○ |
| C-53 | printDirectivesがFragmentDefinitionで改行処理を行うこと | E-02 L441-446 | ○ |
| C-54 | printSequenceがシーケンスを出力できること | E-02 L451-461 | ○ |
| C-55 | printSequenceが空行後に追加改行を入れること | E-02 L455-457 | ○ |
| C-56 | canAttachCommentがComment以外でtrueを返すこと | E-02 L463-465 | ○ |
| C-57 | canAttachCommentがCommentでfalseを返すこと | E-02 L463-465 | ○ |
| C-58 | printCommentがコメントを出力できること | E-02 L467-474 | ○ |
| C-59 | printCommentが末尾空白をトリムすること | E-02 L469 | ○ |
| C-60 | printCommentがComment以外でエラーをスローすること | E-02 L472-473 | ○ |
| C-61 | printVariableDefinitionsが変数定義を出力できること | E-02 L476-493 | ○ |
| C-62 | printVariableDefinitionsが空配列で空文字列を返すこと | E-02 L478-480 | ○ |
| C-63 | printVariableDefinitionsがnullで空文字列を返すこと | E-02 L478 | ○ |
| C-64 | hasPrettierIgnoreがprettier-ignoreコメントを検出すること | E-02 L495-500 | ○ |
| C-65 | hasPrettierIgnoreがprettier-ignoreコメントがない場合falseを返すこと | E-02 L495-500 | ○ |
| C-66 | hasPrettierIgnoreがcommentsがない場合falseを返すこと | E-02 L497 | ○ |

### pragma.js関連（C-67〜C-72）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-67 | hasPragmaがプラグマを検出できること | E-03 L7 | ○ |
| C-68 | hasPragmaがプラグマなしでfalseを返すこと | E-03 L7 | ○ |
| C-69 | hasIgnorePragmaがignoreプラグマを検出できること | E-03 L8 | ○ |
| C-70 | hasIgnorePragmaがignoreプラグマなしでfalseを返すこと | E-03 L8 | ○ |
| C-71 | insertPragmaがプラグマを挿入できること | E-03 L9 | ○ |
| C-72 | insertPragmaが空文字列にプラグマを挿入できること | E-03 L9 | ○ |

### loc.js関連（C-73〜C-76）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | locStartがノードの開始位置を取得できること | E-04 L1 | ○ |
| C-74 | locStartがlocプロパティなしでエラーになること | E-04 L1 | ○ |
| C-75 | locEndがノードの終了位置を取得できること | E-04 L2 | ○ |
| C-76 | locEndがlocプロパティなしでエラーになること | E-04 L2 | ○ |

### massage-ast/index.js関連（C-77〜C-81）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-77 | massageAstNodeがブロック文字列の値をトリムすること | E-05 L4-10 | ○ |
| C-78 | massageAstNodeが複数行ブロック文字列を変更しないこと | E-05 L7 | ○ |
| C-79 | massageAstNodeが非ブロック文字列を変更しないこと | E-05 L6 | ○ |
| C-80 | massageAstNodeがStringValue以外を変更しないこと | E-05 L5 | ○ |
| C-81 | massageAstNode.ignoredPropertiesがlocとcommentsを含むこと | E-05 L13 | ○ |

### get-visitor-keys.js関連（C-82〜C-83）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-82 | getVisitorKeysがノードのビジターキーを取得できること | E-06 L4 | ○ |
| C-83 | getVisitorKeysが未知のノードを処理できること | E-06 L4 | ○ |

### visitor-keys.js関連（C-84〜C-85）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | visitorKeysがエクスポートされること | E-07 L3, L16 | ○ |
| C-85 | 除外されたキーがvisitorKeysに含まれないこと | E-07 L6-14 | ○ |

### print/description.js関連（C-86〜C-89）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-86 | printDescriptionがdescriptionを出力すること | E-08 L3-17 | ○ |
| C-87 | printDescriptionがdescriptionなしで空文字列を返すこと | E-08 L5-7 | ○ |
| C-88 | printDescriptionがInputValueDefinitionで非ブロック時lineを使用すること | E-08 L10-11 | ○ |
| C-89 | printDescriptionがInputValueDefinitionでブロック時hardlineを使用すること | E-08 L12-13 | ○ |

### languages.evaluate.js関連（C-90〜C-91）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-90 | languagesがGraphQL言語設定をエクスポートすること | E-09 L4-9 | ○ |
| C-91 | vscodeLanguageIdsが設定されていること | E-09 L7 | ○ |

### options.js関連（C-92〜C-93）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-92 | optionsがエクスポートされること | E-10 L4-7 | ○ |
| C-93 | bracketSpacingが共通オプションから継承されること | E-10 L5 | ○ |

### index.js関連（C-94〜C-97）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-94 | printersがgraphqlプリンターをエクスポートすること | E-11 L3-5 | ○ |
| C-95 | languagesがエクスポートされること | E-11 L6 | ○ |
| C-96 | optionsがエクスポートされること | E-11 L7 | ○ |
| C-97 | parsersがエクスポートされること | E-11 L8 | ○ |

## 4) 不足情報（Unknown / Missing）
- すべてのテストケースはソースコードから直接導出されているため、根拠なしの項目はありません。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースはソースコード解析に基づいており、根拠が明確です。
- 注意事項：
  - GraphQLライブラリ（graphql-js）の仕様変更により、一部のテストケースが影響を受ける可能性があります。
  - `c8 ignore`コメントで除外されているコードパス（L23-25, L429, L472）は実行困難なケースです。

## 6) レビュアーチェックリスト（最小）
- [ ] parser-graphql.js: parse関数のエラーハンドリングが適切か確認
- [ ] printer-graphql.js: 各ノードタイプの出力形式がGraphQL仕様に準拠しているか確認
- [ ] printer-graphql.js: genericPrint関数のswitch文で全ノードタイプがカバーされているか確認
- [ ] pragma.js: プラグマの正規表現パターンが正しいか確認（外部依存）
- [ ] massage-ast/index.js: AST正規化ロジックがフォーマット結果に影響を与えないか確認
- [ ] visitor-keys.js: 除外されたキー（ArgumentCoordinate等）が正しく処理されているか確認
