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

# 根拠レポート：typescript-plugin 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：85 / 88、根拠なし：3
- 優先レビュー（高）
  1. **UT-TSP-060**：50階層制限のテストは実装上のマジックナンバーに依存（要確認）
  2. **UT-TSP-081/082**：TypeScript内部API（getTokenAtPosition）の存在確認は実行時のみ検証可能
  3. **UT-TSP-069**：非文字列プロパティのテストは優先度低いが境界ケース

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

- E-01: `packages/typescript-plugin/src/index.ts` - メインプラグインファイル（640行）
- E-02: `packages/typescript-plugin/src/helpers.ts` - ヘルパー関数ファイル（159行）
- E-03: `packages/typescript-plugin/src/__tests__/plugin.spec.ts` - 既存テストファイル（643行）
- E-04: `packages/typescript-plugin/src/__tests__/fixtures/` - テストフィクスチャディレクトリ
- E-05: TypeScript Language Service Plugin API（外部ドキュメント）

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

### index.ts - プラグイン初期化・プロキシ関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-TSP-001) | プラグインが正常に初期化されること | E-01 L7-121, E-03 L67-93 | ○ |
| C-02 (UT-TSP-002) | LanguageServiceの全メソッドがプロキシされること | E-01 L20-26 | ○ |
| C-03 (UT-TSP-003) | baseDirConfigが設定されている場合、そのパスが返却されること | E-01 L28-32 | ○ |
| C-04 (UT-TSP-004) | キャッシュ済みのbaseDirが返却されること | E-01 L34-37 | ○ |
| C-05 (UT-TSP-005) | payload.configからbaseDirが検出されること | E-01 L39-46, E-01 L618-637 | ○ |
| C-06 (UT-TSP-006) | payload.configが見つからない場合undefinedが返却されること | E-01 L618-637 | ○ |

### index.ts - 診断機能（getSemanticDiagnostics）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-07 (UT-TSP-007) | 既存の診断情報とPayload診断情報がマージされること | E-01 L49-67, E-03 L127-177 | ○ |
| C-08 (UT-TSP-008) | プログラムがnullの場合、既存の診断のみ返却されること | E-01 L52-55 | ○ |
| C-09 (UT-TSP-009) | ソースファイルがnullの場合、既存の診断のみ返却されること | E-01 L57-60 | ○ |
| C-28 (UT-TSP-028) | 無効なモジュールパスに対してエラーコード71001が生成されること | E-01 L246-255, E-03 L149-157 | ○ |
| C-29 (UT-TSP-029) | 無効なエクスポート名に対してエラーコード71002が生成されること | E-01 L256-284, E-03 L159-167 | ○ |
| C-30 (UT-TSP-030) | 有効なパスとエクスポートに対してエラーが生成されないこと | E-03 L128-146 | ○ |
| C-31 (UT-TSP-031) | スペルミスに対して候補が提案されること | E-01 L260-271, E-03 L169-177 | ○ |
| C-32 (UT-TSP-032) | 利用可能なエクスポート一覧がエラーメッセージに含まれること | E-01 L272-274 | ○ |

### index.ts - 補完機能（getCompletionsAtPosition）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 (UT-TSP-010) | StringLiteral上で補完候補が提供されること | E-01 L69-93, E-03 L253-306 | ○ |
| C-11 (UT-TSP-011) | Payload補完がない場合、元のLanguageServiceにフォールバックすること | E-01 L87-93 | ○ |
| C-12 (UT-TSP-012) | プログラムがnullの場合、元のLanguageServiceにフォールバックすること | E-01 L70-71 | ○ |
| C-33 (UT-TSP-033) | exportNameコンテキストでエクスポート補完が提供されること | E-01 L313-318 | ○ |
| C-34 (UT-TSP-034) | #の後でエクスポート補完が提供されること | E-01 L326-337, E-03 L254-266 | ○ |
| C-35 (UT-TSP-035) | #の前でパス補完が提供されること | E-01 L339, E-03 L268-279 | ○ |
| C-36 (UT-TSP-036) | PayloadComponentコンテキストでない場合undefinedが返却されること | E-01 L308-311 | ○ |
| C-37 (UT-TSP-037) | モジュールのエクスポートが補完候補として返却されること | E-01 L342-378 | ○ |
| C-38 (UT-TSP-038) | モジュールが解決できない場合undefinedが返却されること | E-01 L358-360 | ○ |
| C-39 (UT-TSP-039) | replacementSpanが正しく設定されること | E-01 L368-372 | ○ |
| C-40 (UT-TSP-040) | ディレクトリ一覧が補完候補として返却されること | E-01 L442-455, E-03 L281-294 | ○ |
| C-41 (UT-TSP-041) | ファイル一覧が補完候補として返却されること | E-01 L457-481 | ○ |
| C-42 (UT-TSP-042) | 拡張子なしのファイル名も候補に含まれること | E-01 L473-480 | ○ |
| C-43 (UT-TSP-043) | .で始まるディレクトリは除外されること | E-01 L443 | ○ |
| C-44 (UT-TSP-044) | node_modulesは除外されること | E-01 L443 | ○ |
| C-45 (UT-TSP-045) | プレフィックスでフィルタリングされること | E-01 L446-448, L462-464 | ○ |
| C-46 (UT-TSP-046) | ディレクトリが存在しない場合undefinedが返却されること | E-01 L435-437 | ○ |
| C-47 (UT-TSP-047) | 候補が0件の場合undefinedが返却されること | E-01 L483-485 | ○ |
| C-84 (UT-TSP-084) | /で始まるパスがbaseDirからの補完になること | E-01 L411-415 | ○ |
| C-85 (UT-TSP-085) | ./で始まるパスがbaseDirからの補完になること | E-01 L416-420 | ○ |
| C-86 (UT-TSP-086) | @/で始まるパスがtsconfig pathsで解決されること | E-01 L421-428, E-03 L553-578 | ○ |

### index.ts - 定義ジャンプ機能（getDefinitionAndBoundSpan）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 (UT-TSP-013) | PayloadComponent文字列からの定義ジャンプが機能すること | E-01 L95-114, E-03 L309-343 | ○ |
| C-14 (UT-TSP-014) | PayloadComponent以外の場合、元のLanguageServiceにフォールバックすること | E-01 L113 | ○ |
| C-48 (UT-TSP-048) | コンポーネントの定義位置が返却されること | E-01 L499-581, E-03 L310-343 | ○ |
| C-49 (UT-TSP-049) | 指定されたエクスポートの宣言位置が返却されること | E-01 L544-565, E-03 L322-332 | ○ |
| C-50 (UT-TSP-050) | エクスポートが見つからない場合、ファイル先頭が返却されること | E-01 L568-580 | ○ |
| C-51 (UT-TSP-051) | PayloadComponentコンテキストでない場合undefinedが返却されること | E-01 L506-508 | ○ |
| C-52 (UT-TSP-052) | モジュールが解決できない場合undefinedが返却されること | E-01 L525-527 | ○ |
| C-87 (UT-TSP-087) | @/エイリアスパスが正しく検証されること | E-03 L423-466 | ○ |
| C-88 (UT-TSP-088) | @/エイリアスパスから定義ジャンプできること | E-03 L594-641 | ○ |

### index.ts - パス解析関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 (UT-TSP-015) | string型コンテキストでpath#exportNameが正しくパースされること | E-01 L132-165 | ○ |
| C-16 (UT-TSP-016) | path型コンテキストでexportNameValueが優先されること | E-01 L139-142, L160-162 | ○ |
| C-17 (UT-TSP-017) | exportName型コンテキストでpathValueと組み合わせて解析されること | E-01 L142-145 | ○ |
| C-18 (UT-TSP-018) | #がない場合、exportNameはdefaultになること | E-01 L155-158 | ○ |
| C-19 (UT-TSP-019) | #の後が空の場合、exportNameはdefaultになること | E-01 L154 | ○ |
| C-20 (UT-TSP-020) | exportName型でpathValueがない場合undefinedが返却されること | E-01 L142-147 | ○ |
| C-21 (UT-TSP-021) | /で始まるパスがbaseDirからの相対パスとして解決されること | E-01 L181-188 | ○ |
| C-22 (UT-TSP-022) | ./で始まるパスがbaseDirからの相対パスとして解決されること | E-01 L181-188 | ○ |
| C-23 (UT-TSP-023) | baseDirがundefinedの場合、containingFileからの相対解決になること | E-01 L177-178 | ○ |
| C-24 (UT-TSP-024) | モジュールが見つからない場合undefinedが返却されること | E-01 L193-194 | ○ |
| C-25 (UT-TSP-025) | モジュールのエクスポート一覧が取得できること | E-01 L197-213 | ○ |
| C-26 (UT-TSP-026) | ソースファイルが取得できない場合、空配列が返却されること | E-01 L201-204 | ○ |
| C-27 (UT-TSP-027) | モジュールシンボルが取得できない場合、空配列が返却されること | E-01 L207-210 | ○ |
| C-53 (UT-TSP-053) | モジュールパスがディレクトリに解決されること | E-01 L588-610 | ○ |
| C-54 (UT-TSP-054) | 解決できない場合undefinedが返却されること | E-01 L602-609 | ○ |
| C-55 (UT-TSP-055) | payload.config.tsがあるディレクトリが返却されること | E-01 L618-637 | ○ |
| C-56 (UT-TSP-056) | payload.config.jsでも検出されること | E-01 L616 | ○ |
| C-57 (UT-TSP-057) | config.tsでも検出されること | E-01 L616 | ○ |
| C-58 (UT-TSP-058) | 親ディレクトリを遡って検索されること | E-01 L622-635 | ○ |
| C-59 (UT-TSP-059) | ルートに達した場合undefinedが返却されること | E-01 L629-632 | ○ |
| C-60 (UT-TSP-060) | 50階層以上の深いネストで検索が停止すること | E-01 L622 | △ |

### helpers.ts - コンテキスト検出
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 (UT-TSP-061) | PayloadComponent型のStringLiteralでstring型コンテキストが返却されること | E-02 L15-23 | ○ |
| C-62 (UT-TSP-062) | pathプロパティでpath型コンテキストが返却されること | E-02 L25-36 | ○ |
| C-63 (UT-TSP-063) | exportNameプロパティでexportName型コンテキストが返却されること | E-02 L38-41 | ○ |
| C-64 (UT-TSP-064) | 兄弟プロパティのexportNameが取得されること | E-02 L34-35, L48-61 | ○ |
| C-65 (UT-TSP-065) | 兄弟プロパティのpathが取得されること | E-02 L39-40, L48-61 | ○ |
| C-66 (UT-TSP-066) | PayloadComponent以外のStringLiteralでundefinedが返却されること | E-02 L45 | ○ |
| C-67 (UT-TSP-067) | 指定された名前の兄弟プロパティ値が取得されること | E-02 L48-61 | ○ |
| C-68 (UT-TSP-068) | 指定された名前のプロパティが存在しない場合undefinedが返却されること | E-02 L53-60 | ○ |
| C-69 (UT-TSP-069) | プロパティ値が文字列でない場合undefinedが返却されること | E-02 L58-60 | △ |

### helpers.ts - 型判定
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 (UT-TSP-070) | PayloadComponentエイリアスでtrueが返却されること | E-02 L69-77 | ○ |
| C-71 (UT-TSP-071) | CustomComponentエイリアスでtrueが返却されること | E-02 L72-74 | ○ |
| C-72 (UT-TSP-072) | DocumentViewComponentエイリアスでtrueが返却されること | E-02 L72-74 | ○ |
| C-73 (UT-TSP-073) | string | { path: string }形式のUnion型でtrueが返却されること | E-02 L79-97 | ○ |
| C-74 (UT-TSP-074) | Union型でない場合falseが返却されること | E-02 L79-81 | ○ |
| C-75 (UT-TSP-075) | pathプロパティを持たないUnion型でfalseが返却されること | E-02 L96 | ○ |
| C-76 (UT-TSP-076) | RawPayloadComponentエイリアスでtrueが返却されること | E-02 L103-107 | ○ |
| C-77 (UT-TSP-077) | path+exportNameプロパティを持つオブジェクト型でtrueが返却されること | E-02 L109-111 | ○ |
| C-78 (UT-TSP-078) | Union内にpath+exportNameを持つメンバーがある場合trueが返却されること | E-02 L113-120 | ○ |
| C-79 (UT-TSP-079) | pathのみでexportNameがない場合falseが返却されること | E-02 L110 | ○ |

### helpers.ts - ノード検索
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-80 (UT-TSP-080) | 指定位置の最深ノードが返却されること | E-02 L128-158 | ○ |
| C-81 (UT-TSP-081) | 内部APIが利用可能な場合getTokenAtPositionが使用されること | E-02 L133-141 | △ |
| C-82 (UT-TSP-082) | 内部APIがない場合フォールバック実装が使用されること | E-02 L143-157 | ○ |
| C-83 (UT-TSP-083) | 位置がノード範囲外の場合undefinedが返却されること | E-02 L145, L154 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-60 (UT-TSP-060)**: 50階層制限はコード内のマジックナンバー（L622: `for (let i = 0; i < 50; i++)`）であり、この値の妥当性や変更可能性についてのドキュメントがない
  - 候補：設計意図ドキュメント / コードコメント / テストケース
- **C-69 (UT-TSP-069)**: 非文字列プロパティのケースは現状テストされていないが、型システムにより通常は発生しにくい
  - 候補：型定義 / 既存テストの拡張
- **C-81 (UT-TSP-081)**: TypeScript内部API（getTokenAtPosition）の存在は実行時に確認されるため、異なるTypeScriptバージョンでの動作確認が必要
  - 候補：バージョン互換性テスト / TypeScript APIドキュメント

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 大部分のテストケースはソースコードと既存テストから根拠が明確
- **1 (中リスク)**: TypeScript内部APIへの依存（C-81）はバージョンアップ時に注意
- **0 (低リスク)**: 50階層制限（C-60）は実用上問題になることは稀

## 6) レビュアーチェックリスト（最小）
- [ ] 診断機能（71001/71002エラーコード）のテストケースが網羅的か確認
- [ ] 補完機能のパスパターン（/, ./, @/）が全てカバーされているか確認
- [ ] 定義ジャンプのエクスポート解決ロジックが正確か確認
- [ ] TypeScript内部API（getTokenAtPosition）のフォールバックが適切にテストされるか確認
- [ ] tsconfig paths（@/エイリアス）のテストが十分か確認
- [ ] 境界値テスト（空配列、null、undefined）のカバレッジ確認
