---
generated_at: 2026-02-18 10:30:00
metrics:
  claims_total: 110
  claims_with_evidence: 108
  claims_without_evidence: 2
confidence_derived: 0.98
---

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

## 本レポートについて

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

### チェック方法
以下の観点でテストケースの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコード・既存テストファイル・型定義などの根拠（Evidence）が存在するか
2. **根拠との整合性**：テストケースの内容が実装コードと矛盾していないか
3. **網羅性**：主要な関数・クラス・メソッドを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：108 / 110、根拠なし：2
- 優先レビュー（高）
  1. **UT-SCH-103**: $commentメソッドの詳細仕様確認が必要
  2. **UT-SCH-095**: 多対多リレーションのジョインテーブル生成ロジック詳細確認

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

- E-01: `src/parser/index.ts` - メインパーサーエントリポイント
- E-02: `src/parser/types.ts` - Processor型定義
- E-03: `src/parser/supportedFormat/detectFormat.ts` - フォーマット検出関数
- E-04: `src/parser/supportedFormat/schema.ts` - サポート形式定義
- E-05: `src/utils/isEmptySchema.ts` - スキーマ空判定関数
- E-06: `src/utils/isPrimaryKey.ts` - 主キー判定関数
- E-07: `src/utils/constraintsToRelationships.ts` - 制約からリレーションシップ変換
- E-08: `src/parser/schemarb/singularize.ts` - 単数形変換関数
- E-09: `src/parser/schemarb/convertColumnType.ts` - schemarb型変換
- E-10: `src/parser/schemarb/parser.ts` - schema.rbパーサー
- E-11: `src/parser/prisma/parser.ts` - Prismaパーサー
- E-12: `src/parser/prisma/convertToPostgresColumnType.ts` - Prisma型変換
- E-13: `src/parser/tbls/parser.ts` - tblsパーサー
- E-14: `src/parser/drizzle/postgres/mainParser.ts` - Drizzleパーサー
- E-15: `src/parser/liam/index.ts` - Liamパーサー
- E-16: `src/parser/errors.ts` - エラークラス定義
- E-17: `src/parser/utils/defaultRelationshipName.ts` - リレーションシップ名生成
- E-18: `src/schema/factories.ts` - ファクトリ関数
- E-19: `src/schema/schema.ts` - スキーマ型定義
- E-20: `src/schema/mergeSchema.ts` - スキーママージ関数
- E-21: `src/migrationOperation/utils/determineChangeStatus.ts` - 変更状態判定
- E-22: `src/migrationOperation/utils/applyPatchOperations.ts` - パッチ適用
- E-23: `src/migrationOperation/utils/getMigrationOperations.ts` - マイグレーション操作取得
- E-24: `src/migrationOperation/utils/tables/getTableChangeStatus.ts` - テーブル変更状態
- E-25: `src/migrationOperation/utils/tables/getTableCommentChangeStatus.ts` - コメント変更状態
- E-26: `src/migrationOperation/utils/columns/getColumnRelatedChangeStatus.ts` - カラム変更状態
- E-27: `src/migrationOperation/constants.ts` - パスパターン定数
- E-28: `src/migrationOperation/schema/index.ts` - マイグレーション操作スキーマ
- E-29: `src/parser/supportedFormat/detectFormat.test.ts` - 既存テスト（参考）
- E-30: `src/parser/schemarb/singularize.test.ts` - 既存テスト（参考）
- E-31: `src/utils/isEmptySchema.test.ts` - 既存テスト（参考）
- E-32: `src/utils/constraintsToRelationships.test.ts` - 既存テスト（参考）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| UT-SCH-001 | parse関数でschemarb形式をパース | E-01, E-10 | ○ |
| UT-SCH-002 | parse関数でpostgres形式をパース | E-01 | ○ |
| UT-SCH-003 | parse関数でprisma形式をパース | E-01, E-11 | ○ |
| UT-SCH-004 | parse関数でdrizzle形式をパース | E-01, E-14 | ○ |
| UT-SCH-005 | parse関数でtbls形式をパース | E-01, E-13 | ○ |
| UT-SCH-006 | parse関数でliam形式をパース | E-01, E-15 | ○ |
| UT-SCH-007 | detectFormatでschema.rbを検出 | E-03, E-29 | ○ |
| UT-SCH-008 | detectFormatで.sqlを検出 | E-03, E-29 | ○ |
| UT-SCH-009 | detectFormatで.prismaを検出 | E-03, E-29 | ○ |
| UT-SCH-010 | detectFormatでschema.tsを検出 | E-03, E-29 | ○ |
| UT-SCH-011 | detectFormatでschema.jsonを検出 | E-03, E-29 | ○ |
| UT-SCH-012 | detectFormatで不明拡張子はundefined | E-03, E-29 | ○ |
| UT-SCH-013 | detectFormatで空パスはundefined | E-03 | ○ |
| UT-SCH-014 | detectFormatで大文字小文字を無視 | E-03 | ○ |
| UT-SCH-015 | isEmptySchemaで空スキーマ判定 | E-05, E-31 | ○ |
| UT-SCH-016 | isEmptySchemaでテーブル存在判定 | E-05, E-31 | ○ |
| UT-SCH-017 | isEmptySchemaでenum存在判定 | E-05, E-31 | ○ |
| UT-SCH-018 | isEmptySchemaでextension存在判定 | E-05, E-31 | ○ |
| UT-SCH-019 | isPrimaryKeyで主キー判定（true） | E-06 | ○ |
| UT-SCH-020 | isPrimaryKeyで主キー判定（false） | E-06 | ○ |
| UT-SCH-021 | isPrimaryKeyで空制約判定 | E-06 | ○ |
| UT-SCH-022 | constraintsToRelationshipsでFK変換 | E-07, E-32 | ○ |
| UT-SCH-023 | constraintsToRelationshipsでONE_TO_ONE判定 | E-07, E-32 | ○ |
| UT-SCH-024 | constraintsToRelationshipsでONE_TO_MANY判定 | E-07, E-32 | ○ |
| UT-SCH-025 | constraintsToRelationshipsで空制約 | E-07 | ○ |
| UT-SCH-026 | constraintsToRelationshipsで複合FK | E-07 | ○ |
| UT-SCH-027 | singularizeで複数形変換 | E-08, E-30 | ○ |
| UT-SCH-028 | singularizeで不規則変換 | E-08, E-30 | ○ |
| UT-SCH-029 | singularizeでes終わり変換 | E-08, E-30 | ○ |
| UT-SCH-030 | singularizeで単数形維持 | E-08, E-30 | ○ |
| UT-SCH-031 | convertColumnTypeでstring変換 | E-09 | ○ |
| UT-SCH-032 | convertColumnTypeでinteger変換 | E-09 | ○ |
| UT-SCH-033 | convertColumnTypeでdatetime変換 | E-09 | ○ |
| UT-SCH-034 | convertColumnTypeで未知型 | E-09 | ○ |
| UT-SCH-035 | convertToPostgresColumnTypeでString変換 | E-12 | ○ |
| UT-SCH-036 | convertToPostgresColumnTypeでInt変換 | E-12 | ○ |
| UT-SCH-037 | convertToPostgresColumnTypeでBigInt変換 | E-12 | ○ |
| UT-SCH-038 | convertToPostgresColumnTypeでDateTime変換 | E-12 | ○ |
| UT-SCH-039 | convertToPostgresColumnTypeでnativeType | E-12 | ○ |
| UT-SCH-040 | convertToPostgresColumnTypeでDoublePrecision | E-12 | ○ |
| UT-SCH-041 | defaultRelationshipNameで名前生成 | E-17 | ○ |
| UT-SCH-042 | aColumnでデフォルト生成 | E-18 | ○ |
| UT-SCH-043 | aColumnでオーバーライド | E-18 | ○ |
| UT-SCH-044 | aTableでデフォルト生成 | E-18 | ○ |
| UT-SCH-045 | aTableでカラム付き生成 | E-18 | ○ |
| UT-SCH-046 | anIndexでデフォルト生成 | E-18 | ○ |
| UT-SCH-047 | aForeignKeyConstraintでデフォルト生成 | E-18 | ○ |
| UT-SCH-048 | aSchemaでデフォルト生成 | E-18 | ○ |
| UT-SCH-049 | mergeSchemasでマージ | E-20 | ○ |
| UT-SCH-050 | mergeSchemasで削除カラム保持 | E-20 | ○ |
| UT-SCH-051 | mergeSchemasで削除インデックス保持 | E-20 | ○ |
| UT-SCH-052 | mergeSchemasで削除制約保持 | E-20 | ○ |
| UT-SCH-053 | mergeSchemasでenumマージ | E-20 | ○ |
| UT-SCH-054 | mergeSchemasでbeforeのみテーブル | E-20 | ○ |
| UT-SCH-055 | determineChangeStatusで空operations | E-21 | ○ |
| UT-SCH-056 | determineChangeStatusでadd | E-21 | ○ |
| UT-SCH-057 | determineChangeStatusでremove | E-21 | ○ |
| UT-SCH-058 | determineChangeStatusでreplace | E-21 | ○ |
| UT-SCH-059 | determineChangeStatusでadd+remove | E-21 | ○ |
| UT-SCH-060 | determineChangeStatusでcustomChecker | E-21 | ○ |
| UT-SCH-061 | applyPatchOperationsでreplace適用 | E-22 | ○ |
| UT-SCH-062 | applyPatchOperationsでadd適用 | E-22 | ○ |
| UT-SCH-063 | applyPatchOperationsでremove適用 | E-22 | ○ |
| UT-SCH-064 | applyPatchOperationsで無効パス | E-22 | ○ |
| UT-SCH-065 | getMigrationOperationsで差分生成 | E-23 | ○ |
| UT-SCH-066 | getMigrationOperationsで同一スキーマ | E-23 | ○ |
| UT-SCH-067 | getMigrationOperationsでテーブル追加 | E-23 | ○ |
| UT-SCH-068 | getMigrationOperationsでカラム変更 | E-23 | ○ |
| UT-SCH-069 | getTableChangeStatusでadded | E-24 | ○ |
| UT-SCH-070 | getTableChangeStatusでremoved | E-24 | ○ |
| UT-SCH-071 | getTableChangeStatusでunchanged | E-24 | ○ |
| UT-SCH-072 | getTableCommentChangeStatusでmodified | E-25 | ○ |
| UT-SCH-073 | getColumnRelatedChangeStatusでadded | E-26 | ○ |
| UT-SCH-074 | getColumnRelatedChangeStatusでmodified | E-26 | ○ |
| UT-SCH-075 | getColumnRelatedChangeStatusでcolumnIdフィルタ | E-26 | ○ |
| UT-SCH-076 | schema.rbパーサーでテーブルパース | E-10 | ○ |
| UT-SCH-077 | schema.rbパーサーでカラムパース | E-10 | ○ |
| UT-SCH-078 | schema.rbパーサーでNOT NULL | E-10 | ○ |
| UT-SCH-079 | schema.rbパーサーでデフォルト値 | E-10 | ○ |
| UT-SCH-080 | schema.rbパーサーでインデックス | E-10 | ○ |
| UT-SCH-081 | schema.rbパーサーでUNIQUEインデックス | E-10 | ○ |
| UT-SCH-082 | schema.rbパーサーでadd_foreign_key | E-10 | ○ |
| UT-SCH-083 | schema.rbパーサーでcheck_constraint | E-10 | ○ |
| UT-SCH-084 | schema.rbパーサーでid:false | E-10 | ○ |
| UT-SCH-085 | schema.rbパーサーでテーブルコメント | E-10 | ○ |
| UT-SCH-086 | Prismaパーサーでmodelパース | E-11 | ○ |
| UT-SCH-087 | Prismaパーサーで@id | E-11 | ○ |
| UT-SCH-088 | Prismaパーサーで@unique | E-11 | ○ |
| UT-SCH-089 | Prismaパーサーで@relation | E-11 | ○ |
| UT-SCH-090 | Prismaパーサーで@@index | E-11 | ○ |
| UT-SCH-091 | Prismaパーサーでenum | E-11 | ○ |
| UT-SCH-092 | Prismaパーサーで@db | E-11, E-12 | ○ |
| UT-SCH-093 | Prismaパーサーで@map | E-11 | ○ |
| UT-SCH-094 | Prismaパーサーでautoincrement | E-11, E-12 | ○ |
| UT-SCH-095 | Prismaパーサーで多対多ジョインテーブル | E-11 | △ |
| UT-SCH-096 | tblsパーサーでテーブルパース | E-13 | ○ |
| UT-SCH-097 | tblsパーサーで制約パース | E-13 | ○ |
| UT-SCH-098 | tblsパーサーでインデックスパース | E-13 | ○ |
| UT-SCH-099 | tblsパーサーでenumパース | E-13 | ○ |
| UT-SCH-100 | tblsパーサーで無効JSON | E-13 | ○ |
| UT-SCH-101 | DrizzleパーサーでpgTable | E-14 | ○ |
| UT-SCH-102 | DrizzleパーサーでpgEnum | E-14 | ○ |
| UT-SCH-103 | Drizzleパーサーで$comment | E-14 | △ |
| UT-SCH-104 | Drizzleパーサーでエラー | E-14 | ○ |
| UT-SCH-105 | LiamパーサーでJSONパース | E-15 | ○ |
| UT-SCH-106 | Liamパーサーで無効JSON | E-15 | ○ |
| UT-SCH-107 | Liamパーサーでスキーマ検証失敗 | E-15 | ○ |
| UT-SCH-108 | ProcessErrorでメッセージ設定 | E-16 | ○ |
| UT-SCH-109 | WarningErrorでname設定 | E-16 | ○ |
| UT-SCH-110 | UnexpectedTokenWarningErrorでname設定 | E-16 | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-SCH-095**: 多対多リレーションのジョインテーブル生成ロジックは複雑で、特にエッジケースの挙動について追加検証が必要
  - 候補：既存の integration test / Prisma公式ドキュメント / 実際のマイグレーション出力との比較
- **UT-SCH-103**: $commentメソッドの詳細仕様についてDrizzle公式ドキュメントとの整合性確認が必要
  - 候補：Drizzle ORM公式ドキュメント / 既存のDrizzle関連テスト

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク**: エラークラス関連テスト（UT-SCH-108〜110）- 単純なクラス継承
- **1: 中リスク**: 型変換関連テスト（UT-SCH-031〜040）- マッピングの網羅性確認推奨
- **1: 中リスク**: フォーマット検出テスト（UT-SCH-007〜014）- 新フォーマット追加時の影響
- **2: 高リスク**: パーサー関連テスト（UT-SCH-076〜107）- 外部ライブラリ依存、複雑なAST解析

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度のテストケース（優先度=高）が主要なビジネスロジックをカバーしているか
- [ ] パーサーのエラーハンドリングが適切にテストされているか
- [ ] 型変換マッピングが全てのサポートされている型をカバーしているか
- [ ] マイグレーション操作の変更状態判定ロジックが正しいか
- [ ] 複合外部キー、多対多リレーションなどの複雑なケースがカバーされているか
- [ ] 既存のテストファイル（*.test.ts）との重複・整合性を確認
