---
generated_at: 2026-02-24 12:00:00
metrics:
  claims_total: 72
  claims_with_evidence: 70
  claims_without_evidence: 2
confidence_derived: 0.97
---

# 根拠レポート：packages-language-model-registry.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：70 / 72、根拠なし：2
- 優先レビュー（高）
  1. **C-53（isValidDomain最小ドメイン）**：正規表現の境界条件、実際の動作確認推奨
  2. **C-61（全GitHubツール名網羅テスト）**：ツール数が多いため、実装との整合性確認推奨

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

- E-01: `packages/language-model-registry/src/language-model.ts` - コア型定義とユーティリティ関数
- E-02: `packages/language-model-registry/src/language-models.ts` - レジストリ関数
- E-03: `packages/language-model-registry/src/anthropic.ts` - Anthropicモデル定義
- E-04: `packages/language-model-registry/src/openai.ts` - OpenAIモデル定義
- E-05: `packages/language-model-registry/src/google.ts` - Googleモデル定義
- E-06: `packages/language-model-registry/src/tools/tool.ts` - ツール型定義とユーティリティ
- E-07: `packages/language-model-registry/src/tools/tools.ts` - ツールレジストリ関数
- E-08: `packages/language-model-registry/src/tools/anthropic-web-search.ts` - Anthropic Web Search定義
- E-09: `packages/language-model-registry/src/tools/openai-web-search.ts` - OpenAI Web Search定義
- E-10: `packages/language-model-registry/src/tools/google-web-search.ts` - Google Web Search定義
- E-11: `packages/language-model-registry/src/tools/github.ts` - GitHubツール定義
- E-12: `packages/language-model-registry/src/tools/postgres.ts` - PostgreSQLツール定義
- E-13: `packages/language-model-registry/src/language-model.test.ts` - 既存テストファイル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | definePricing正常系（正の数値） | E-01（20-28行目） | ○ |
| C-02 | definePricing正常系（小数点） | E-01（20-28行目） | ○ |
| C-03 | definePricing境界値（ゼロ） | E-01（20-28行目） | ○ |
| C-04 | definePricing正常系（大きな数値） | E-01（20-28行目） | ○ |
| C-05 | hasTierAccess（free-free） | E-01（50-55行目、TIER_ORDER定義35-38行目） | ○ |
| C-06 | hasTierAccess（free-pro） | E-01（50-55行目） | ○ |
| C-07 | hasTierAccess（pro-free） | E-01（50-55行目、コメント42-48行目） | ○ |
| C-08 | hasTierAccess（pro-pro） | E-01（50-55行目） | ○ |
| C-09 | defineLanguageModel正常系 | E-01（108-120行目） | ○ |
| C-10 | defineLanguageModel providerId自動設定 | E-01（117行目） | ○ |
| C-11 | parseConfiguration正常系 | E-01（142-175行目）、E-13（11-21行目） | ○ |
| C-12 | parseConfiguration型エラーフォールバック | E-01（164-171行目）、E-13（23-33行目） | ○ |
| C-13 | parseConfiguration範囲外フォールバック | E-01（164-171行目）、E-13（35-45行目） | ○ |
| C-14 | parseConfiguration欠落値デフォルト | E-01（157-161行目）、E-13（47-57行目） | ○ |
| C-15 | parseConfiguration空オブジェクト | E-01（157-161行目）、E-13（59-66行目） | ○ |
| C-16 | parseConfiguration未知キー無視 | E-01（148-151行目）、E-13（68-80行目） | ○ |
| C-17 | parseConfiguration enum正常系 | E-01（164-167行目）、E-13（86-96行目） | ○ |
| C-18 | parseConfiguration無効enum | E-01（168-171行目）、E-13（98-108行目） | ○ |
| C-19 | isLanguageModelId有効ID | E-02（13-15行目） | ○ |
| C-20 | isLanguageModelId無効ID | E-02（13-15行目） | ○ |
| C-21 | isLanguageModelId null | E-02（13-15行目） | ○ |
| C-22 | isLanguageModelId undefined | E-02（13-15行目） | ○ |
| C-23 | isLanguageModelId数値型 | E-02（13-15行目） | ○ |
| C-24 | isLanguageModelProvider有効 | E-02（24-28行目） | ○ |
| C-25 | isLanguageModelProvider無効 | E-02（24-28行目） | ○ |
| C-26 | isLanguageModelProvider null | E-02（24-28行目） | ○ |
| C-27 | getEntry正常系 | E-02（34-44行目） | ○ |
| C-28 | getEntry無効IDエラー | E-02（39-41行目） | ○ |
| C-29 | defineTool スキーマなし | E-06（109-120行目） | ○ |
| C-30 | defineTool スキーマあり | E-06（112-114行目） | ○ |
| C-31 | hasSchema true | E-06（122-126行目） | ○ |
| C-32 | hasSchema false | E-06（122-126行目） | ○ |
| C-33 | hasSchema undefined | E-06（125行目） | ○ |
| C-34 | defineLanguageModelTool ツールなし | E-06（164-186行目） | ○ |
| C-35 | defineLanguageModelTool ツールあり | E-06（171-178行目） | ○ |
| C-36 | hasTools true | E-06（188-196行目） | ○ |
| C-37 | hasTools false | E-06（188-196行目） | ○ |
| C-38 | hasTools undefined | E-06（195行目） | ○ |
| C-39 | isLanguageModelToolName有効 | E-07（22-26行目） | ○ |
| C-40 | isLanguageModelToolName無効 | E-07（22-26行目） | ○ |
| C-41 | isLanguageModelToolName null | E-07（22-26行目） | ○ |
| C-42 | isLanguageModelToolName数値 | E-07（22-26行目） | ○ |
| C-43 | getLanguageModelTool正常系 | E-07（28-34行目） | ○ |
| C-44 | getLanguageModelTool postgres | E-07（28-34行目） | ○ |
| C-45 | getLanguageModelTool無効名エラー | E-07（30-32行目） | ○ |
| C-46 | isValidDomain有効 | E-08（4-14行目） | ○ |
| C-47 | isValidDomainサブドメイン | E-08（9行目、正規表現） | ○ |
| C-48 | isValidDomain空文字列 | E-08（5-7行目） | ○ |
| C-49 | isValidDomainスペースのみ | E-08（5行目、trim使用） | ○ |
| C-50 | isValidDomain無効フォーマット | E-08（9-12行目） | ○ |
| C-51 | isValidDomainプロトコル付き | E-08（9行目、正規表現） | ○ |
| C-52 | isValidDomainパス付き | E-08（9行目、正規表現） | ○ |
| C-53 | isValidDomain最小ドメイン | E-08（9行目、正規表現） | △ |
| C-54 | OpenAI isValidDomain有効 | E-09（4-13行目） | ○ |
| C-55 | OpenAI isValidDomain空文字列 | E-09（5-7行目） | ○ |
| C-56 | OpenAI isValidDomain無効フォーマット | E-09（8-12行目） | ○ |
| C-57 | isGitHubToolName有効 | E-11（595-599行目） | ○ |
| C-58 | isGitHubToolName無効 | E-11（595-599行目） | ○ |
| C-59 | isGitHubToolName数値 | E-11（596-597行目） | ○ |
| C-60 | isGitHubToolName null | E-11（596-597行目） | ○ |
| C-61 | isGitHubToolName全ツール網羅 | E-11（4-567行目、全ツール定義） | △ |
| C-62 | anthropicオブジェクト構造 | E-03（18-159行目） | ○ |
| C-63 | anthropicモデルregistryVersion | E-03、E-01（116行目） | ○ |
| C-64 | anthropicモデルproviderId | E-03、E-01（117行目） | ○ |
| C-65 | openaiオブジェクト構造 | E-04（28-273行目） | ○ |
| C-66 | openaiモデルregistryVersion | E-04、E-01（116行目） | ○ |
| C-67 | googleオブジェクト構造 | E-05（18-196行目） | ○ |
| C-68 | googleモデルregistryVersion | E-05、E-01（116行目） | ○ |
| C-69 | languageModels配列 | E-02（5-9行目） | ○ |
| C-70 | languageModelIds配列 | E-02（11行目） | ○ |
| C-71 | languageModelTools配列 | E-07（9-15行目） | ○ |
| C-72 | languageModelToolNames配列 | E-07（17-19行目） | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-53**：正規表現`/^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i`の最小有効ドメインパターン（例：`a.co`）の動作確認が必要
  - 候補：ユニットテスト実行による実動作確認 / 正規表現の詳細分析
- **C-61**：GitHubツール数が34個と多く、全ツール名の網羅テストの妥当性確認が必要
  - 候補：E-11の全ツール定義との照合 / 自動生成テストの検討

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**：definePricing、hasTierAccess - シンプルな計算・比較ロジック
- **0（低リスク）**：defineLanguageModel、defineTool、defineLanguageModelTool - パススルー関数
- **1（中リスク）**：parseConfiguration - Zodスキーマによるバリデーション、フォールバックロジックあり（既存テスト E-13 により検証済み）
- **1（中リスク）**：isLanguageModelId、isLanguageModelProvider、isLanguageModelToolName - 型ガード関数、unknown型の入力処理
- **1（中リスク）**：getEntry、getLanguageModelTool - 存在しないキーでのエラースロー
- **1（中リスク）**：isValidDomain - 正規表現によるドメイン検証、エッジケース多数
- **0（低リスク）**：hasSchema、hasTools - シンプルなプロパティ存在チェック
- **0（低リスク）**：モデル定義オブジェクト（anthropic、openai、google） - 静的データ定義

## 6) レビュアーチェックリスト（最小）
- [ ] parseConfigurationの既存テスト（E-13）と新規テストケースの重複・補完関係を確認
- [ ] isValidDomain関数の正規表現境界条件（C-53）を実際のテスト実行で確認
- [ ] GitHubツール名の全網羅テスト（C-61）の実用性を確認（34ツールの個別テストか、パラメータ化テストか）
- [ ] 各プロバイダのモデル定義が最新のAPI仕様と整合しているか確認
- [ ] TIER_ORDER定数の将来拡張（新ティア追加）時のテスト影響を確認
