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

# 根拠レポート：stock-location.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：52 / 54、根拠なし：2
- 優先レビュー（高）
  1. **C-33**：コンストラクタの依存関係欠落時の挙動（根拠不足）
  2. **C-05**：名前なし作成時のバリデーションエラー（根拠不足）

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

- E-01: `packages/modules/stock-location/src/services/stock-location-module.ts` - メインサービスファイル
- E-02: `packages/modules/stock-location/src/models/stock-location.ts` - StockLocationモデル定義
- E-03: `packages/modules/stock-location/src/models/stock-location-address.ts` - StockLocationAddressモデル定義
- E-04: `packages/modules/stock-location/src/joiner-config.ts` - Joiner設定
- E-05: `packages/modules/stock-location/src/index.ts` - モジュールエントリポイント
- E-06: `packages/modules/stock-location/src/schema/index.ts` - GraphQLスキーマ定義
- E-07: `packages/modules/stock-location/integration-tests/__tests__/stock-location-module-service.spec.ts` - 統合テストファイル
- E-08: `packages/modules/stock-location/src/models/index.ts` - モデルエクスポート
- E-09: `packages/modules/stock-location/src/services/index.ts` - サービスエクスポート

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | createStockLocations: 単一の在庫ロケーションを作成できること | E-01 (L81-110), E-07 (L57-64) | ○ |
| C-02 | createStockLocations: 配列で複数の在庫ロケーションを作成できること | E-01 (L81-110), E-07 (L66-74) | ○ |
| C-03 | createStockLocations: 住所情報付きで在庫ロケーションを作成できること | E-01 (L81-110), E-07 (L76-93) | ○ |
| C-04 | createStockLocations: metadata付きで在庫ロケーションを作成できること | E-01 (L81-110), E-02 (L7) | ○ |
| C-05 | createStockLocations: 名前なしで作成するとエラーになること | E-02 (L6) | △ |
| C-06 | createStockLocations: 空配列を渡した場合に空配列が返ること | E-01 (L100-109) | ○ |
| C-07 | createStockLocations_: トランザクション内で在庫ロケーションが作成されること | E-01 (L112-118) | ○ |
| C-08 | upsertStockLocations: ID無しデータで新規作成されること | E-01 (L120-145), E-07 (L147-155) | ○ |
| C-09 | upsertStockLocations: ID有りデータで更新されること | E-01 (L120-145), E-07 (L147-155) | ○ |
| C-10 | upsertStockLocations: 配列で複数のupsertが実行されること | E-01 (L147-172) | ○ |
| C-11 | upsertStockLocations: 住所付きでupsertできること | E-01 (L120-145), E-07 (L157-174) | ○ |
| C-12 | upsertStockLocations_: 作成と更新が並列実行されること | E-01 (L147-172) | ○ |
| C-13 | upsertStockLocations_: 作成のみの場合に正しく処理されること | E-01 (L152-166) | ○ |
| C-14 | upsertStockLocations_: 更新のみの場合に正しく処理されること | E-01 (L152-166) | ○ |
| C-15 | updateStockLocations: IDを指定して在庫ロケーションを更新できること | E-01 (L174-220) | ○ |
| C-16 | updateStockLocations: セレクタを指定して複数の在庫ロケーションを更新できること | E-01 (L174-220) | ○ |
| C-17 | updateStockLocations: 住所を追加更新できること | E-01 (L174-220) | ○ |
| C-18 | updateStockLocations: 存在しないIDを指定するとエラーになること | E-01 (L222-234) | ○ |
| C-19 | updateStockLocations_: 内部更新処理が正しく動作すること | E-01 (L222-234) | ○ |
| C-20 | updateStockLocationAddresses: 単一の住所を更新できること | E-01 (L236-266), E-07 (L186-198) | ○ |
| C-21 | updateStockLocationAddresses: 複数の住所を配列で更新できること | E-01 (L236-266) | ○ |
| C-22 | updateStockLocationAddresses: 住所の全フィールドを更新できること | E-01 (L236-266), E-03 | ○ |
| C-23 | updateStockLocationAddresses: 存在しない住所IDを指定するとエラーになること | E-01 (L268-274) | ○ |
| C-24 | updateStockLocationAddresses_: 内部住所更新処理が正しく動作すること | E-01 (L268-274) | ○ |
| C-25 | upsertStockLocationAddresses: ID無しで新規住所が作成されること | E-01 (L276-302) | ○ |
| C-26 | upsertStockLocationAddresses: ID有りで既存住所が更新されること | E-01 (L276-302) | ○ |
| C-27 | upsertStockLocationAddresses: 配列で複数の住所upsertが実行されること | E-01 (L304-333) | ○ |
| C-28 | upsertStockLocationAddresses_: 住所の作成と更新が並列実行されること | E-01 (L304-333) | ○ |
| C-29 | upsertStockLocationAddresses_: 住所作成のみの場合に正しく処理されること | E-01 (L309-324) | ○ |
| C-30 | upsertStockLocationAddresses_: 住所更新のみの場合に正しく処理されること | E-01 (L309-324) | ○ |
| C-31 | __joinerConfig: joinerConfigが正しく返却されること | E-01 (L76-78), E-04 | ○ |
| C-32 | constructor: 依存関係が正しく注入されること | E-01 (L58-74) | ○ |
| C-33 | constructor: 必須依存関係が欠けている場合にエラーになること | E-01 (L58-74) | △ |
| C-34 | StockLocation model.define: 在庫ロケーションモデルが正しく定義されていること | E-02 (L4-14) | ○ |
| C-35 | StockLocation id: IDがslocプレフィックス付きで生成されること | E-02 (L5) | ○ |
| C-36 | StockLocation name: 名前フィールドが検索可能であること | E-02 (L6) | ○ |
| C-37 | StockLocation metadata: メタデータがnull許容であること | E-02 (L7) | ○ |
| C-38 | StockLocation address: 住所へのリレーションが正しく設定されること | E-02 (L8-13) | ○ |
| C-39 | StockLocationAddress model.define: 住所モデルが正しく定義されていること | E-03 (L4-23) | ○ |
| C-40 | StockLocationAddress id: IDがladdrプレフィックス付きで生成されること | E-03 (L6) | ○ |
| C-41 | StockLocationAddress address_1: address_1フィールドが必須であること | E-03 (L7), E-06 (L4) | ○ |
| C-42 | StockLocationAddress country_code: country_codeフィールドが必須であること | E-03 (L11), E-06 (L6) | ○ |
| C-43 | StockLocationAddress address_2: address_2フィールドがnull許容であること | E-03 (L8) | ○ |
| C-44 | StockLocationAddress company: companyフィールドがnull許容であること | E-03 (L9) | ○ |
| C-45 | StockLocationAddress city: cityフィールドがnull許容かつ検索可能であること | E-03 (L10) | ○ |
| C-46 | StockLocationAddress cascades: 削除時にstock_locationsがカスケード削除されること | E-03 (L20-22) | ○ |
| C-47 | StockLocationAddress stock_locations: StockLocationへのhasOneリレーションが正しく設定されること | E-03 (L16-18) | ○ |
| C-48 | joinerConfig defineJoinerConfig: joinerConfigが正しく定義されること | E-04 (L5-11) | ○ |
| C-49 | joinerConfig linkableKeys: linkableKeysにstock_location_idが含まれること | E-04 (L8) | ○ |
| C-50 | joinerConfig linkableKeys: linkableKeysにlocation_idが含まれること | E-04 (L9) | ○ |
| C-51 | Module default export: モジュールが正しくエクスポートされること | E-05 (L4-6) | ○ |
| C-52 | schema default export: GraphQLスキーマが正しく定義されること | E-06 | ○ |
| C-53 | StockLocation type definition: StockLocation型に必須フィールドが含まれること | E-06 (L18-27) | ○ |
| C-54 | StockLocationAddress type definition: StockLocationAddress型に必須フィールドが含まれること | E-06 (L2-16) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-05（名前なしで作成するとエラーになること）**: モデル定義では`name`が`model.text()`で定義されており、必須であることは推測できるが、実際のバリデーションエラーの挙動を確認するテストコードが既存の統合テストに存在しない
  - 候補：モデル定義 / MedusaServiceベースクラスのバリデーションロジック / 統合テストでの異常系テスト追加

- **C-33（必須依存関係が欠けている場合にエラーになること）**: コンストラクタ内で依存関係の存在チェックは明示的に行われていないため、実際の挙動は親クラス（MedusaService）の実装に依存
  - 候補：MedusaServiceベースクラスの実装 / DIコンテナの挙動確認 / 明示的なnullチェックの追加

## 5) リスクフラグ（レビュー観点）
- **リスク1（中）**: 異常系テストケース（C-05, C-18, C-23, C-33）の期待結果が推測に基づいている。実際のエラーメッセージやエラー型を確認する必要がある
- **リスク0（低）**: モデル定義のテストケース（C-34-47）はモデル定義ファイルに基づいており、高い信頼性がある
- **リスク0（低）**: サービスメソッドのテストケースは既存の統合テスト（E-07）と整合性が取れている

## 6) レビュアーチェックリスト（最小）
- [ ] C-05: `name`フィールドなしでの作成時に、適切なMedusaError（INVALID_DATA）がスローされるか確認
- [ ] C-33: 依存関係が不足した状態でのサービス初期化時の挙動を確認（TypeScriptの型チェックで防がれる可能性あり）
- [ ] C-18, C-23: 存在しないIDでの更新時にNOT_FOUNDエラーがスローされるか、実際のエラー型を確認
- [ ] 優先度「高」のテストケースがビジネスクリティカルな機能を網羅しているか確認
- [ ] カスケード削除（C-46）の挙動が意図したとおりか、データ整合性の観点で確認
