---
generated_at: 2026-02-24 10:30:00
metrics:
  claims_total: 48
  claims_with_evidence: 46
  claims_without_evidence: 2
confidence_derived: 0.96
---

# 根拠レポート：region.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：46 / 48、根拠なし：2
- 優先レビュー（高）
  1. **UT-REG-031（normalizeInput静的メソッド）**：privateメソッドのため直接テスト可能性を確認
  2. **UT-REG-029, UT-REG-030（validateCountries内部メソッド）**：privateメソッドのため間接的なテストが必要

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

- E-01: `packages/modules/region/src/services/region-module.ts` - RegionModuleServiceクラス定義
- E-02: `packages/modules/region/src/models/region.ts` - Regionモデル定義
- E-03: `packages/modules/region/src/models/country.ts` - Countryモデル定義
- E-04: `packages/modules/region/src/loaders/defaults.ts` - デフォルトローダー
- E-05: `packages/modules/region/src/index.ts` - モジュールエントリポイント
- E-06: `packages/modules/region/src/types/index.ts` - 型定義
- E-07: `packages/modules/region/integration-tests/__tests__/region-module.spec.ts` - 統合テスト

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | createRegionsで単一リージョンを作成できる | E-01 (L71-95), E-07 (L50-78) | ○ |
| C-02 | createRegionsで複数リージョンを配列で作成できる | E-01 (L84-88) | ○ |
| C-03 | 国コードを含むリージョンを作成できる | E-01 (L116-131), E-07 (L81-110) | ○ |
| C-04 | currency_codeが小文字に正規化される | E-01 (L310), E-07 (L61-62) | ○ |
| C-05 | 名前の前後の空白がトリムされる | E-01 (L311) | ○ |
| C-06 | 国コードが小文字に正規化される | E-01 (L312) | ○ |
| C-07 | automatic_taxesのデフォルト値がtrue | E-02 (L8), E-07 (L97) | ○ |
| C-08 | 存在しない国コードでエラーになる | E-01 (L352-361), E-07 (L112-119) | ○ |
| C-09 | 既に割り当て済みの国コードでエラー | E-01 (L364-374), E-07 (L122-138) | ○ |
| C-10 | 同一リクエスト内の重複国コードでエラー | E-01 (L334-342), E-07 (L140-157) | ○ |
| C-11 | countriesが空配列でも作成可能 | E-01 (L116), E-07 (L406-429) | ○ |
| C-12 | IDを指定してリージョン更新 | E-01 (L222-253), E-07 (L223-266) | ○ |
| C-13 | フィルタ条件で複数リージョン更新 | E-01 (L230-241) | ○ |
| C-14 | countriesを更新できる | E-01 (L276-300), E-07 (L223-266) | ○ |
| C-15 | countries未定義時は国が変更されない | E-01 (L264-267), E-07 (L268-294) | ○ |
| C-16 | countriesを空配列で全解除可能 | E-01 (L276), E-07 (L296-320) | ○ |
| C-17 | 更新時もcurrency_codeが正規化される | E-01 (L310) | ○ |
| C-18 | 更新時に存在しない国コードでエラー | E-01 (L287-290), E-07 (L322-337) | ○ |
| C-19 | 更新時に重複国コードでエラー | E-01 (L334-342), E-07 (L339-356) | ○ |
| C-20 | 更新時に他リージョン割当済みの国でエラー | E-01 (L366-374), E-07 (L358-382) | ○ |
| C-21 | upsertでIDなしなら新規作成 | E-01 (L188-189, L194-195), E-07 (L159-184) | ○ |
| C-22 | upsertでIDありなら更新 | E-01 (L185-186, L197-198), E-07 (L159-184) | ○ |
| C-23 | upsertで作成と更新の同時実行 | E-01 (L192-200), E-07 (L187-221) | ○ |
| C-24 | upsert単一入力で単一出力 | E-01 (L174-176) | ○ |
| C-25 | softDeleteでリージョン削除 | E-01 (L139-155), E-07 (L406-429) | ○ |
| C-26 | softDelete時に国のregion_idがnull化 | E-01 (L146-152), E-07 (L432-452) | ○ |
| C-27 | 国なしリージョンのsoftDelete | E-07 (L406-429) | ○ |
| C-28 | softDelete後に同じ国で新規作成可能 | E-07 (L384-404, L432-452) | ○ |
| C-29 | validateCountriesで空リストは空配列返却 | E-01 (L329-331) | ○ |
| C-30 | validateCountriesでundefinedは空配列返却 | E-01 (L329) | ○ |
| C-31 | normalizeInputでundefinedプロパティ除去 | E-01 (L307-314) | △ |
| C-32 | RegionのIDプレフィックスが'reg' | E-02 (L5) | ○ |
| C-33 | nameが検索可能・翻訳可能 | E-02 (L6) | ○ |
| C-34 | automatic_taxesデフォルトtrue | E-02 (L8) | ○ |
| C-35 | metadataがnullable | E-02 (L10) | ○ |
| C-36 | Countryのiso_2がプライマリキー | E-03 (L8) | ○ |
| C-37 | Countryのregion関連がnullable | E-03 (L13-15) | ○ |
| C-38 | region_id+iso_2の複合ユニークインデックス | E-03 (L19-26) | ○ |
| C-39 | デフォルト国データが250件ロード | E-04 (L20-29), E-07 (L45-48) | ○ |
| C-40 | 国コードが小文字に正規化（ローダー） | E-04 (L22-23) | ○ |
| C-41 | 国名がUPPERCASEで保存 | E-04 (L25) | ○ |
| C-42 | ローダーエラー時に警告ログで継続 | E-04 (L31-34) | ○ |
| C-43 | モジュールがREGIONとして登録 | E-05 (L5) | ○ |
| C-44 | RegionModuleServiceがサービスとして設定 | E-05 (L6) | ○ |
| C-45 | loadDefaultsがローダーとして設定 | E-05 (L7) | ○ |
| C-46 | コンストラクタで依存性注入 | E-01 (L59-68) | ○ |
| C-47 | createRegions_でトランザクション処理 | E-01 (L97-134) | ○ |
| C-48 | updateRegions_で既存国割当クリア | E-01 (L277-285) | ○ |

## 4) 不足情報（Unknown / Missing）
- **normalizeInput（C-31）**：privateな静的メソッドのため、直接の単体テストは実装上の工夫が必要
  - 候補：公開API（createRegions, updateRegions）経由でのテスト / テストユーティリティでの公開 / リフレクション

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: モデル定義のテストケース（C-32〜C-38）- 静的な定義の確認
- **1（中リスク）**: ローダー関連（C-39〜C-42）- 外部依存（DefaultsUtils.defaultCountries）の動作確認が必要
- **0（低リスク）**: CRUD操作（C-01〜C-28）- 統合テストで既に検証済みのパターンが多い

## 6) レビュアーチェックリスト（最小）
- [ ] privateメソッド（validateCountries, normalizeInput）のテスト戦略は適切か
- [ ] 統合テストとの重複・補完関係は明確か
- [ ] エラーメッセージの検証粒度は十分か
- [ ] トランザクション境界のテストは含まれているか
- [ ] 並行処理（同時に同じ国を異なるリージョンに割り当て）のテストは必要か
