---
generated_at: 2026-02-24 10:30:00
metrics:
  claims_total: 141
  claims_with_evidence: 138
  claims_without_evidence: 3
confidence_derived: 0.98
---

# 根拠レポート：fulfillment.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：138 / 141、根拠なし：3
- 優先レビュー（高）
  1. **プロバイダー連携テスト（UT-FUL-034, 035, 038, 039）**：プロバイダーの実装詳細に依存
  2. **ローダー関連テスト（UT-FUL-137〜141）**：コンテナ依存の動作確認が必要
  3. **価格計算テスト（UT-FUL-082, 109）**：プロバイダー実装に依存

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

- E-01: `packages/modules/fulfillment/src/services/fulfillment-module-service.ts`
- E-02: `packages/modules/fulfillment/src/services/fulfillment-provider.ts`
- E-03: `packages/modules/fulfillment/src/utils/utils.ts`
- E-04: `packages/modules/fulfillment/src/loaders/providers.ts`
- E-05: `packages/modules/fulfillment/src/models/fulfillment.ts`
- E-06: `packages/modules/fulfillment/src/models/shipping-option.ts`
- E-07: `packages/modules/fulfillment/src/models/fulfillment-set.ts`
- E-08: `packages/modules/fulfillment/src/models/service-zone.ts`
- E-09: `packages/modules/fulfillment/src/models/geo-zone.ts`
- E-10: `packages/modules/fulfillment/src/models/shipping-option-rule.ts`
- E-11: `packages/modules/fulfillment/src/models/shipping-profile.ts`
- E-12: `packages/modules/fulfillment/src/types/service.ts`
- E-13: `packages/modules/fulfillment/src/joiner-config.ts`

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

### FulfillmentModuleService (E-01)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | listShippingOptionsメソッドが存在し、フィルター条件で動作分岐する | E-01 (L157-173) | ○ |
| C-02 | listShippingOptionsForContextメソッドがルールベースフィルタリングを行う | E-01 (L176-212) | ○ |
| C-03 | retrieveFulfillmentメソッドがIDでFulfillmentを取得する | E-01 (L214-229) | ○ |
| C-04 | listFulfillmentsメソッドがフィルター付きリストを取得する | E-01 (L231-246) | ○ |
| C-05 | listAndCountFulfillmentsメソッドがリストとカウントを返す | E-01 (L248-266) | ○ |
| C-06 | createFulfillmentSetsメソッドが単一・複数作成をサポート | E-01 (L269-333) | ○ |
| C-07 | createServiceZonesメソッドがGeoZone検証を含む作成を行う | E-01 (L336-394) | ○ |
| C-08 | createShippingOptionsメソッドがルール検証を含む作成を行う | E-01 (L397-452) | ○ |
| C-09 | createShippingProfilesメソッドがプロファイル作成を行う | E-01 (L455-503) | ○ |
| C-10 | createGeoZonesメソッドが型別検証を行う | E-01 (L506-537) | ○ |
| C-11 | createShippingOptionRulesメソッドがルール検証を行う | E-01 (L540-598) | ○ |
| C-12 | createFulfillmentメソッドがプロバイダー連携とロールバックを行う | E-01 (L600-645) | ○ |
| C-13 | deleteFulfillmentメソッドがキャンセル済みチェックを行う | E-01 (L647-667) | ○ |
| C-14 | createReturnFulfillmentメソッドがReturn作成を行う | E-01 (L669-715) | ○ |
| C-15 | updateFulfillmentSetsメソッドがネスト更新・削除を行う | E-01 (L717-920) | ○ |
| C-16 | updateServiceZonesメソッドがID/セレクター指定更新を行う | E-01 (L922-1119) | ○ |
| C-17 | upsertServiceZonesメソッドがupsert動作を行う | E-01 (L1121-1201) | ○ |
| C-18 | updateShippingOptionsメソッドがルール更新を含む更新を行う | E-01 (L1203-1393) | ○ |
| C-19 | upsertShippingOptionsメソッドがupsert動作を行う | E-01 (L1395-1470) | ○ |
| C-20 | upsertShippingOptionTypesメソッドがupsert動作を行う | E-01 (L1472-1517) | ○ |
| C-21 | updateShippingOptionTypesメソッドが更新を行う | E-01 (L1519-1575) | ○ |
| C-22 | updateShippingProfilesメソッドが更新を行う | E-01 (L1577-1648) | ○ |
| C-23 | upsertShippingProfilesメソッドがupsert動作を行う | E-01 (L1650-1710) | ○ |
| C-24 | updateGeoZonesメソッドが更新と検証を行う | E-01 (L1712-1750) | ○ |
| C-25 | updateShippingOptionRulesメソッドが更新と検証を行う | E-01 (L1752-1810) | ○ |
| C-26 | updateFulfillmentメソッドがラベル更新を含む更新を行う | E-01 (L1812-1883) | ○ |
| C-27 | cancelFulfillmentメソッドがキャンセル制約チェックを行う | E-01 (L1885-1926) | ○ |
| C-28 | retrieveFulfillmentOptionsメソッドがプロバイダー委譲を行う | E-01 (L1928-1934) | ○ |
| C-29 | validateFulfillmentDataメソッドがプロバイダー委譲を行う | E-01 (L1936-1948) | ○ |
| C-30 | validateFulfillmentOptionメソッドがプロバイダー委譲を行う | E-01 (L1950-1959) | ○ |
| C-31 | validateShippingOptionメソッドがコンテキスト検証を行う | E-01 (L1961-1976) | ○ |
| C-32 | validateShippingOptionsForPriceCalculationメソッドがcalculatedタイプチェックを行う | E-01 (L1978-2001) | ○ |
| C-33 | calculateShippingOptionsPricesメソッドが価格計算を行う | E-01 (L2003-2016) | ○ |
| C-34 | deleteShippingProfilesメソッドがShippingOption有無チェックを行う | E-01 (L2018-2032) | ○ |
| C-35 | softDeleteShippingProfilesメソッドがShippingOption有無チェックを行う | E-01 (L2034-2047) | ○ |
| C-36 | validateGeoZones静的メソッドが型別必須プロパティ検証を行う | E-01 (L2145-2175) | ○ |
| C-37 | canCancelFulfillmentOrThrow静的メソッドが出荷/配達済みチェックを行う | E-01 (L2077-2095) | ○ |
| C-38 | normalizeListShippingOptionsForContextParams静的メソッドがパラメータ正規化を行う | E-01 (L2177-2258) | ○ |
| C-39 | buildGeoZoneConstraintsFromAddress静的メソッドがアドレスから制約を構築する | E-01 (L2296-2344) | ○ |

### FulfillmentProviderService (E-02)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | getRegistrationIdentifier静的メソッドが識別子を生成する | E-02 (L46-57) | ○ |
| C-41 | retrieveProviderRegistrationメソッドがプロバイダーを取得する | E-02 (L59-81) | ○ |
| C-42 | listFulfillmentOptionsメソッドが複数プロバイダーからオプションを取得する | E-02 (L83-96) | ○ |
| C-43 | getFulfillmentOptionsメソッドがプロバイダーに委譲する | E-02 (L98-103) | ○ |
| C-44 | validateFulfillmentDataメソッドがプロバイダーに委譲する | E-02 (L105-113) | ○ |
| C-45 | validateOptionメソッドがプロバイダーに委譲する | E-02 (L115-118) | ○ |
| C-46 | canCalculateメソッドがプロバイダーに委譲する | E-02 (L120-123) | ○ |
| C-47 | calculatePriceメソッドがプロバイダーに委譲する | E-02 (L125-133) | ○ |
| C-48 | createFulfillmentメソッドがプロバイダーに委譲する | E-02 (L135-144) | ○ |
| C-49 | cancelFulfillmentメソッドがプロバイダーに委譲する | E-02 (L146-152) | ○ |
| C-50 | createReturnメソッドがプロバイダーに委譲する | E-02 (L154-157) | ○ |

### Utils (E-03)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | isContextValid関数がルール評価を行う | E-03 (L69-92) | ○ |
| C-52 | operatorsPredicateオブジェクトが各オペレーターの評価ロジックを持つ | E-03 (L29-60) | ○ |
| C-53 | validateRule関数がルールの必須プロパティと型をチェックする | E-03 (L98-146) | ○ |
| C-54 | normalizeRulesValue関数がboolean値を文字列に変換する | E-03 (L148-159) | ○ |
| C-55 | validateAndNormalizeRules関数が検証と正規化を統合する | E-03 (L161-164) | ○ |
| C-56 | validateRules関数が複数ルールを検証する | E-03 (L170-173) | ○ |

### Loaders (E-04)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | registrationFn関数がプロバイダーをコンテナに登録する | E-04 (L16-32) | ○ |
| C-58 | デフォルトエクスポート関数がプロバイダーをロードする | E-04 (L34-60) | ○ |
| C-59 | syncDatabaseProviders関数がDBとコンテナを同期する | E-04 (L62-118) | ○ |

### Models (E-05〜E-11)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | Fulfillmentモデルがitems, labels, provider, shipping_option, delivery_addressを持つ | E-05 (L1-55) | ○ |
| C-61 | ShippingOptionモデルがservice_zone, shipping_profile, provider, type, rules, fulfillmentsを持つ | E-06 (L1-43) | ○ |
| C-62 | FulfillmentSetモデルがservice_zonesを持つ | E-07 (L1-25) | ○ |
| C-63 | ServiceZoneモデルがfulfillment_set, geo_zones, shipping_optionsを持つ | E-08 (L1-61) | ○ |
| C-64 | GeoZoneモデルがtype, country_code, province_code, city, postal_expression, service_zoneを持つ | E-09 (L1-54) | ○ |
| C-65 | ShippingOptionRuleモデルがattribute, operator, value, shipping_optionを持つ | E-10 (L1-13) | ○ |
| C-66 | ShippingProfileモデルがname, type, shipping_optionsを持つ | E-11 (L1-22) | ○ |

## 4) 不足情報（Unknown / Missing）
- **プロバイダーの実装詳細**：IFulfillmentProviderインターフェースの具体的な実装は外部プロバイダーに依存
  - 候補：providers-fulfillment-manual / 外部プロバイダーパッケージ
- **エラーメッセージの正確な文言**：一部のエラーメッセージはMedusaErrorの使用は確認できるが、文言は実行時に確認が必要
  - 候補：実際のテスト実行による確認
- **コンテナ依存の動作**：ローダー関連のテストはAwilixコンテナの動作に依存
  - 候補：@medusajs/framework/awilix の仕様確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク**: モデル定義、静的メソッドのテスト（C-36〜C-39, C-51〜C-56, C-60〜C-66）
- **1: 中リスク**: サービスメソッドのCRUD操作テスト（C-01〜C-35の大部分）
- **2: 高リスク**: プロバイダー連携テスト（C-40〜C-50）、ローダーテスト（C-57〜C-59）
  - 外部依存性が高く、モック設計が重要

## 6) レビュアーチェックリスト（最小）
- [ ] GeoZoneのtype別必須プロパティの検証ロジックがE-01のvalidateGeoZonesと一致しているか確認
- [ ] ルールオペレーターの評価ロジック（特にgt/lt/gte/lteの数値・日付判定）がE-03と一致しているか確認
- [ ] プロバイダー連携テスト（UT-FUL-034, 035, 038, 039, 100〜112）のモック設計が適切か確認
- [ ] ローダーテスト（UT-FUL-137〜141）のコンテナセットアップが適切か確認
- [ ] 冪等性が期待されるテスト（UT-FUL-072）の前提条件と期待結果が正確か確認
- [ ] 削除制約テスト（UT-FUL-037, 084, 086）のエラーメッセージが実装と一致しているか確認
