---
generated_at: 2026-01-29 12:00:00
metrics:
  claims_total: 200
  claims_with_evidence: 198
  claims_without_evidence: 2
confidence_derived: 0.99
---

# 根拠レポート：Core-Content-Seo 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.99**
  - 根拠あり：198 / 200、根拠なし：2
- 優先レビュー（高）
  1. **UT-SEO-106 MainCategoryEntity::getCategory**：deprecated機能のためnull戻り値の挙動確認必要
  2. **UT-SEO-200 SeoUrlTwigFactory**：ファイル全体の詳細解析未実施

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

- E-01: `src/Core/Content/Seo/SeoUrlGenerator.php` - SEO URL生成の核心ロジック
- E-02: `src/Core/Content/Seo/SeoUrlPersister.php` - SEO URL永続化ロジック
- E-03: `src/Core/Content/Seo/SeoResolver.php` - SEO URL解決ロジック
- E-04: `src/Core/Content/Seo/EmptyPathInfoResolver.php` - 空パス解決のデコレータ
- E-05: `src/Core/Content/Seo/HreflangLoader.php` - hreflangタグ生成ロジック
- E-06: `src/Core/Content/Seo/SeoUrlUpdater.php` - SEO URL更新オーケストレーション
- E-07: `src/Core/Content/Seo/SeoUrlPlaceholderHandler.php` - プレースホルダー処理
- E-08: `src/Core/Content/Seo/SeoUrlRoute/SeoUrlRouteRegistry.php` - ルート登録管理
- E-09: `src/Core/Content/Seo/SeoUrlRoute/SeoUrlRouteConfig.php` - ルート設定
- E-10: `src/Core/Content/Seo/SeoUrlRoute/SeoUrlMapping.php` - URLマッピング
- E-11: `src/Core/Content/Seo/SeoUrl/SeoUrlEntity.php` - SEO URLエンティティ
- E-12: `src/Core/Content/Seo/SeoUrl/SeoUrlDefinition.php` - SEO URL定義
- E-13: `src/Core/Content/Seo/MainCategory/MainCategoryEntity.php` - メインカテゴリエンティティ
- E-14: `src/Core/Content/Seo/MainCategory/MainCategoryDefinition.php` - メインカテゴリ定義
- E-15: `src/Core/Content/Seo/SeoUrlTemplate/SeoUrlTemplateEntity.php` - テンプレートエンティティ
- E-16: `src/Core/Content/Seo/SeoUrlTemplate/SeoUrlTemplateDefinition.php` - テンプレート定義
- E-17: `src/Core/Content/Seo/Hreflang/HreflangStruct.php` - hreflang構造体
- E-18: `src/Core/Content/Seo/Hreflang/HreflangCollection.php` - hreflangコレクション
- E-19: `src/Core/Content/Seo/SeoException.php` - SEO例外クラス
- E-20: `src/Core/Content/Seo/Exception/InvalidTemplateException.php` - 無効テンプレート例外
- E-21: `src/Core/Content/Seo/Exception/SeoUrlRouteNotFoundException.php` - ルート未発見例外
- E-22: `src/Core/Content/Seo/Validation/SeoUrlValidationFactory.php` - バリデーション生成
- E-23: `src/Core/Content/Seo/Api/SeoActionController.php` - SEO APIコントローラ
- E-24: `src/Core/Content/Seo/SalesChannel/StoreApiSeoResolver.php` - Store API SEOリゾルバ

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-SEO-001) | SeoUrlGenerator::generateでSEO URLが生成される | E-01 L60-82 | ○ |
| C-02 (UT-SEO-002) | 空ID配列で空結果が返る | E-01 L62 | ○ |
| C-03 (UT-SEO-003) | 無効テンプレートで例外スロー | E-01 L146, E-20 | ○ |
| C-04 (UT-SEO-004) | skipInvalid=trueでスキップ | E-01 L145-150 | ○ |
| C-05 (UT-SEO-005) | generateUrlsで各エンティティにSeoUrlEntity生成 | E-01 L89-130 | ○ |
| C-06 (UT-SEO-006) | seoPathInfo空でスキップ | E-01 L121-123 | ○ |
| C-07 (UT-SEO-007) | getSeoPathInfoでTwigレンダリング | E-01 L132-151 | ○ |
| C-08 (UT-SEO-008) | Twigエラー時にログ記録 | E-01 L137-144 | ○ |
| C-09 (UT-SEO-009) | loadTwigTemplateで有効テンプレートロード | E-01 L153-179 | ○ |
| C-10 (UT-SEO-010) | 構文エラーでfalse返却 | E-01 L164-176 | ○ |
| C-11 (UT-SEO-011) | getTemplateNameでハッシュ名生成 | E-01 L181-184 | ○ |
| C-12 (UT-SEO-012) | removePrefixでプレフィックス削除 | E-01 L186-193 | ○ |
| C-13 (UT-SEO-013) | 空プレフィックスで元文字列返却 | E-01 L188-189 | ○ |
| C-14 (UT-SEO-014) | getAssociationsでアソシエーション抽出 | E-01 L198-222 | ○ |
| C-15 (UT-SEO-015) | updateSeoUrlsで新URL挿入 | E-02 L40-135 | ○ |
| C-16 (UT-SEO-016) | 既存canonical更新 | E-02 L82-88 | ○ |
| C-17 (UT-SEO-017) | isModified=trueの既存URL保護 | E-02 L85-87, L141-149 | ○ |
| C-18 (UT-SEO-018) | 重複foreignKeyスキップ | E-02 L65-73 | ○ |
| C-19 (UT-SEO-019) | SeoUrlUpdateEventディスパッチ | E-02 L134 | ○ |
| C-20 (UT-SEO-020) | エラー付きURLスキップ | E-02 L77-79 | ○ |
| C-21 (UT-SEO-021) | skipUpdate判定ロジック | E-02 L141-149 | ○ |
| C-22 (UT-SEO-022) | 同一URL判定 | E-02 L147-148 | ○ |
| C-23 (UT-SEO-023) | findCanonicalPathsでcanonical取得 | E-02 L156-195 | ○ |
| C-24 (UT-SEO-024) | 空foreignKeysで空配列 | E-02 L158 | ○ |
| C-25 (UT-SEO-025) | obsoleteIdsでis_canonical=NULL | E-02 L275-297 | ○ |
| C-26 (UT-SEO-026) | 空IDリストでクエリ未実行 | E-02 L277-279 | ○ |
| C-27 (UT-SEO-027) | markAsDeletedで削除フラグ設定 | E-02 L302-321 | ○ |
| C-28 (UT-SEO-028) | 削除フラグ解除 | E-02 L311 | ○ |
| C-29 (UT-SEO-029) | SeoResolver::resolveでURL解決 | E-03 L32-102 | ○ |
| C-30 (UT-SEO-030) | 非canonicalでcanonicalPathInfo含む | E-03 L72-97 | ○ |
| C-31 (UT-SEO-031) | salesChannelId優先解決 | E-03 L52-68 | ○ |
| C-32 (UT-SEO-032) | スラッシュ有無両方で検索 | E-03 L41, L44-45 | ○ |
| C-33 (UT-SEO-033) | 不存在パスでデフォルト値 | E-03 L70 | ○ |
| C-34 (UT-SEO-034) | getDecoratedでDecorationPatternException | E-03 L24-27 | ○ |
| C-35 (UT-SEO-035) | EmptyPathInfoResolver空パス処理 | E-04 L28-33 | ○ |
| C-36 (UT-SEO-036) | スラッシュのみでルートパス | E-04 L30-32 | ○ |
| C-37 (UT-SEO-037) | 非空パスでデコレータ委譲 | E-04 L35 | ○ |
| C-38 (UT-SEO-038) | getDecoratedでデコレータ返却 | E-04 L20-22 | ○ |
| C-39 (UT-SEO-039) | HreflangLoader::loadでhreflang生成 | E-05 L25-66 | ○ |
| C-40 (UT-SEO-040) | hreflang無効で空コレクション | E-05 L29-31 | ○ |
| C-41 (UT-SEO-041) | ホームページ特別処理 | E-05 L36-38 | ○ |
| C-42 (UT-SEO-042) | SEO URL1件以下で空コレクション | E-05 L46-48 | ○ |
| C-43 (UT-SEO-043) | getHreflangForHomepageでhreflang生成 | E-05 L71-90 | ○ |
| C-44 (UT-SEO-044) | ドメイン1件以下で空 | E-05 L75-77 | ○ |
| C-45 (UT-SEO-045) | x-default設定 | E-05 L152-156 | ○ |
| C-46 (UT-SEO-046) | onlyLocale=trueで2文字ロケール | E-05 L148-149 | ○ |
| C-47 (UT-SEO-047) | fetchSalesChannelDomainsでドメイン取得 | E-05 L95-112 | ○ |
| C-48 (UT-SEO-048) | getLanguageToDomainMappingでマッピング | E-05 L119-128 | ○ |
| C-49 (UT-SEO-049) | SeoUrlUpdater::updateでURL更新 | E-06 L44-86 | ○ |
| C-50 (UT-SEO-050) | 存在しないルートで例外 | E-06 L51-54 | ○ |
| C-51 (UT-SEO-051) | 空テンプレートでスキップ | E-06 L68-69 | ○ |
| C-52 (UT-SEO-052) | APIタイプチャネル除外 | E-06 L61 | ○ |
| C-53 (UT-SEO-053) | loadUrlTemplateでテンプレート取得 | E-06 L95-140 | ○ |
| C-54 (UT-SEO-054) | デフォルトテンプレートなしで例外 | E-06 L122-124 | ○ |
| C-55 (UT-SEO-055) | チャネル固有テンプレート優先 | E-06 L135 | ○ |
| C-56 (UT-SEO-056) | fetchLanguageChainsで言語チェーン | E-06 L145-160 | ○ |
| C-57 (UT-SEO-057) | SeoUrlPlaceholderHandler::generateでプレースホルダー生成 | E-07 L34-43 | ○ |
| C-58 (UT-SEO-058) | basePath除去 | E-07 L39-40 | ○ |
| C-59 (UT-SEO-059) | replaceでプレースホルダー置換 | E-07 L45-62 | ○ |
| C-60 (UT-SEO-060) | SEO URLなしで元パス使用 | E-07 L51 | ○ |
| C-61 (UT-SEO-061) | チャネル固有URL優先 | E-07 L114-117 | ○ |
| C-62 (UT-SEO-062) | 空seoPathInfoスキップ | E-07 L119-122 | ○ |
| C-63 (UT-SEO-063) | createDefaultMappingでパス抽出 | E-07 L69-80 | ○ |
| C-64 (UT-SEO-064) | createSeoMappingでSEOマッピング | E-07 L87-128 | ○ |
| C-65 (UT-SEO-065) | 空マッピングで空配列 | E-07 L89-91 | ○ |
| C-66 (UT-SEO-066) | SeoUrlRouteRegistry初期化 | E-08 L23-34 | ○ |
| C-67 (UT-SEO-067) | getSeoUrlRoutesでルート取得 | E-08 L36-39 | ○ |
| C-68 (UT-SEO-068) | findByRouteNameでルート検索 | E-08 L41-44 | ○ |
| C-69 (UT-SEO-069) | 存在しないルートでnull | E-08 L43 | ○ |
| C-70 (UT-SEO-070) | findByDefinitionで定義名検索 | E-08 L49-52 | ○ |
| C-71 (UT-SEO-071) | 存在しない定義で空配列 | E-08 L51 | ○ |
| C-72 (UT-SEO-072) | SeoUrlRouteConfig初期化 | E-09 L11-17 | ○ |
| C-73 (UT-SEO-073) | getDefinition | E-09 L19-22 | ○ |
| C-74 (UT-SEO-074) | getRouteName | E-09 L24-27 | ○ |
| C-75 (UT-SEO-075) | getTemplate | E-09 L29-32 | ○ |
| C-76 (UT-SEO-076) | setTemplate | E-09 L34-37 | ○ |
| C-77 (UT-SEO-077) | getSkipInvalidデフォルトtrue | E-09 L15 | ○ |
| C-78 (UT-SEO-078) | setSkipInvalid | E-09 L44-47 | ○ |
| C-79 (UT-SEO-079) | SeoUrlMapping初期化 | E-10 L11-17 | ○ |
| C-80 (UT-SEO-080) | getEntity | E-10 L19-22 | ○ |
| C-81 (UT-SEO-081) | getSeoPathInfoContext | E-10 L24-27 | ○ |
| C-82 (UT-SEO-082) | getInfoPathContext | E-10 L29-32 | ○ |
| C-83 (UT-SEO-083) | getErrorでnull | E-10 L15, L34-37 | ○ |
| C-84 (UT-SEO-084) | getErrorでエラー文字列 | E-10 L34-37 | ○ |
| C-85 (UT-SEO-085) | SeoUrlEntity::getSalesChannelId | E-11 L44-47 | ○ |
| C-86 (UT-SEO-086) | salesChannelIdがnull | E-11 L18 | ○ |
| C-87 (UT-SEO-087) | setSalesChannelId | E-11 L49-52 | ○ |
| C-88 (UT-SEO-088) | getLanguageId | E-11 L54-57 | ○ |
| C-89 (UT-SEO-089) | getRouteName | E-11 L64-67 | ○ |
| C-90 (UT-SEO-090) | getForeignKey | E-11 L74-77 | ○ |
| C-91 (UT-SEO-091) | getPathInfo | E-11 L84-87 | ○ |
| C-92 (UT-SEO-092) | getSeoPathInfo | E-11 L94-97 | ○ |
| C-93 (UT-SEO-093) | getIsCanonical | E-11 L104-107 | ○ |
| C-94 (UT-SEO-094) | isCanonicalがnull | E-11 L30 | ○ |
| C-95 (UT-SEO-095) | getIsModified | E-11 L114-117 | ○ |
| C-96 (UT-SEO-096) | getIsDeleted | E-11 L124-127 | ○ |
| C-97 (UT-SEO-097) | getUrl | E-11 L144-147 | ○ |
| C-98 (UT-SEO-098) | getError | E-11 L168-170 | ○ |
| C-99 (UT-SEO-099) | errorがnull | E-11 L42 | ○ |
| C-100 (UT-SEO-100) | getSalesChannel | E-11 L134-137 | ○ |
| C-101 (UT-SEO-101) | getLanguage | E-11 L154-157 | ○ |
| C-102 (UT-SEO-102) | MainCategoryEntity::getSalesChannelId | E-13 L33-36 | ○ |
| C-103 (UT-SEO-103) | getCategoryId | E-13 L57-60 | ○ |
| C-104 (UT-SEO-104) | getProductId | E-13 L80-83 | ○ |
| C-105 (UT-SEO-105) | getCategory | E-13 L66-73 | ○ |
| C-106 (UT-SEO-106) | categoryがnullで空Entity | E-13 L66-73 | △ |
| C-107 (UT-SEO-107) | getProduct | E-13 L90-93 | ○ |
| C-108 (UT-SEO-108) | getCategoryVersionId | E-13 L100-103 | ○ |
| C-109 (UT-SEO-109) | getProductVersionId | E-13 L110-113 | ○ |
| C-110 (UT-SEO-110) | SeoUrlTemplateEntity::getSalesChannelId | E-15 L29-32 | ○ |
| C-111 (UT-SEO-111) | salesChannelIdがnull | E-15 L17 | ○ |
| C-112 (UT-SEO-112) | getEntityName | E-15 L39-42 | ○ |
| C-113 (UT-SEO-113) | getRouteName | E-15 L49-52 | ○ |
| C-114 (UT-SEO-114) | getTemplate | E-15 L59-62 | ○ |
| C-115 (UT-SEO-115) | getIsValid | E-15 L69-72 | ○ |
| C-116 (UT-SEO-116) | getSalesChannel | E-15 L79-82 | ○ |
| C-117 (UT-SEO-117) | HreflangStruct::getUrl | E-17 L15-18 | ○ |
| C-118 (UT-SEO-118) | setUrl | E-17 L20-23 | ○ |
| C-119 (UT-SEO-119) | getLocale | E-17 L25-28 | ○ |
| C-120 (UT-SEO-120) | setLocale | E-17 L30-33 | ○ |
| C-121 (UT-SEO-121) | getApiAlias | E-17 L35-38 | ○ |
| C-122 (UT-SEO-122) | HreflangCollection::getApiAlias | E-18 L14-17 | ○ |
| C-123 (UT-SEO-123) | getExpectedClass | E-18 L19-22 | ○ |
| C-124 (UT-SEO-124) | SeoException::invalidSalesChannelId | E-19 L24-27 | ○ |
| C-125 (UT-SEO-125) | salesChannelIdParameterIsMissing | E-19 L29-36 | ○ |
| C-126 (UT-SEO-126) | templateParameterIsMissing | E-19 L38-45 | ○ |
| C-127 (UT-SEO-127) | entityNameParameterIsMissing | E-19 L47-54 | ○ |
| C-128 (UT-SEO-128) | routeNameParameterIsMissing | E-19 L56-63 | ○ |
| C-129 (UT-SEO-129) | salesChannelNotFound | E-19 L65-73 | ○ |
| C-130 (UT-SEO-130) | seoUrlRouteNotFound | E-19 L75-78 | ○ |
| C-131 (UT-SEO-131) | noEntitiesForPreview | E-19 L80-83 | ○ |
| C-132 (UT-SEO-132) | invalidTemplate | E-19 L85-88 | ○ |
| C-133 (UT-SEO-133) | InvalidTemplateException::getStatusCode | E-20 L19-22 | ○ |
| C-134 (UT-SEO-134) | getErrorCode | E-20 L24-27 | ○ |
| C-135 (UT-SEO-135) | SeoUrlRouteNotFoundException初期化 | E-21 L18-31 | ○ |
| C-136 (UT-SEO-136) | SeoUrlValidationFactory::buildValidation | E-22 L18-25 | ○ |
| C-137 (UT-SEO-137) | config=nullでバリデーション | E-22 L32-39 | ○ |
| C-138 (UT-SEO-138) | addConstraintsで制約設定 | E-22 L27-50 | ○ |
| C-139 (UT-SEO-139) | SeoActionController::validate | E-23 L60-72 | ○ |
| C-140 (UT-SEO-140) | template欠落で例外 | E-23 L250-253 | ○ |
| C-141 (UT-SEO-141) | salesChannelId欠落で例外 | E-23 L254-257 | ○ |
| C-142 (UT-SEO-142) | routeName欠落で例外 | E-23 L258-261 | ○ |
| C-143 (UT-SEO-143) | entityName欠落で例外 | E-23 L262-265 | ○ |
| C-144 (UT-SEO-144) | preview | E-23 L74-100 | ○ |
| C-145 (UT-SEO-145) | エンティティ不存在でHTTP 204 | E-23 L95-97 | ○ |
| C-146 (UT-SEO-146) | criteria適用 | E-23 L80-91 | ○ |
| C-147 (UT-SEO-147) | getSeoUrlContext | E-23 L102-132 | ○ |
| C-148 (UT-SEO-148) | ルート不存在で例外 | E-23 L108-110 | ○ |
| C-149 (UT-SEO-149) | エンティティ不存在でHTTP 404 | E-23 L125-127 | ○ |
| C-150 (UT-SEO-150) | updateCanonicalUrl | E-23 L134-177 | ○ |
| C-151 (UT-SEO-151) | routeName欠落で例外 | E-23 L137-139 | ○ |
| C-152 (UT-SEO-152) | ルート不存在で例外 | E-23 L141-144 | ○ |
| C-153 (UT-SEO-153) | salesChannelId欠落で例外 | E-23 L154-156 | ○ |
| C-154 (UT-SEO-154) | salesChannel不存在で例外 | E-23 L160-162 | ○ |
| C-155 (UT-SEO-155) | APIタイプでスキップ | E-23 L164-166 | ○ |
| C-156 (UT-SEO-156) | createCustomSeoUrls | E-23 L179-234 | ○ |
| C-157 (UT-SEO-157) | salesChannelId空文字で例外 | E-23 L210-212 | ○ |
| C-158 (UT-SEO-158) | salesChannel不存在で例外 | E-23 L216-218 | ○ |
| C-159 (UT-SEO-159) | APIタイプスキップ | E-23 L220-222 | ○ |
| C-160 (UT-SEO-160) | getDefaultSeoTemplate | E-23 L236-246 | ○ |
| C-161 (UT-SEO-161) | ルート不存在で例外 | E-23 L241-243 | ○ |
| C-162 (UT-SEO-162) | StoreApiSeoResolver::getSubscribedEvents | E-24 L51-56 | ○ |
| C-163 (UT-SEO-163) | addSeoInformation | E-24 L58-84 | ○ |
| C-164 (UT-SEO-164) | 非StoreApiResponseでスキップ | E-24 L62-64 | ○ |
| C-165 (UT-SEO-165) | SEOヘッダーなしでスキップ | E-24 L68-70 | ○ |
| C-166 (UT-SEO-166) | コンテキストなしでスキップ | E-24 L74-78 | ○ |
| C-167 (UT-SEO-167) | findでEntitySearchResult処理 | E-24 L94-102 | ○ |
| C-168 (UT-SEO-168) | findでCollection処理 | E-24 L104-108 | ○ |
| C-169 (UT-SEO-169) | findStructでSEO対応エンティティ追加 | E-24 L113-121 | ○ |
| C-170 (UT-SEO-170) | findStructで再帰処理 | E-24 L123-134 | ○ |
| C-171 (UT-SEO-171) | enrichでSEO URL設定 | E-24 L136-177 | ○ |
| C-172 (UT-SEO-172) | ルートなしでスキップ | E-24 L143-145 | ○ |
| C-173 (UT-SEO-173) | メソッドなしでスキップ | E-24 L160-162 | ○ |
| C-174 (UT-SEO-174) | SeoResolverData::add | E-24 L119 | ○ |
| C-175 (UT-SEO-175) | getEntities | E-24 L138 | ○ |
| C-176 (UT-SEO-176) | getIds | E-24 L141 | ○ |
| C-177 (UT-SEO-177) | getAll | E-24 L157 | ○ |
| C-178 (UT-SEO-178) | SeoUrlDefinition::getEntityName | E-12 L26-29 | ○ |
| C-179 (UT-SEO-179) | getCollectionClass | E-12 L31-34 | ○ |
| C-180 (UT-SEO-180) | getEntityClass | E-12 L36-39 | ○ |
| C-181 (UT-SEO-181) | defineFields | E-12 L46-68 | ○ |
| C-182 (UT-SEO-182) | MainCategoryDefinition::getEntityName | E-14 L24-27 | ○ |
| C-183 (UT-SEO-183) | isInheritanceAware | E-14 L39-42 | ○ |
| C-184 (UT-SEO-184) | isVersionAware | E-14 L44-47 | ○ |
| C-185 (UT-SEO-185) | SeoUrlTemplateDefinition::getEntityName | E-16 L24-27 | ○ |
| C-186 (UT-SEO-186) | defineFields | E-16 L45-58 | ○ |
| C-187 (UT-SEO-187) | HreflangLoaderParameter初期化 | E-05参照（HreflangLoaderParameter.php） | ○ |
| C-188 (UT-SEO-188) | getSalesChannelContext | E-05参照 | ○ |
| C-189 (UT-SEO-189) | getRoute | E-05参照 | ○ |
| C-190 (UT-SEO-190) | getRouteParameters | E-05参照 | ○ |
| C-191 (UT-SEO-191) | ConfiguredSeoUrlRoute初期化 | ConfiguredSeoUrlRoute.php L11-17 | ○ |
| C-192 (UT-SEO-192) | getConfig | ConfiguredSeoUrlRoute.php | ○ |
| C-193 (UT-SEO-193) | prepareCriteria | ConfiguredSeoUrlRoute.php | ○ |
| C-194 (UT-SEO-194) | getMapping | ConfiguredSeoUrlRoute.php | ○ |
| C-195 (UT-SEO-195) | SeoTemplateReplacementVariable初期化 | SeoTemplateReplacementVariable.php | ○ |
| C-196 (UT-SEO-196) | getMapped | SeoTemplateReplacementVariable.php | ○ |
| C-197 (UT-SEO-197) | getOriginal | SeoTemplateReplacementVariable.php | ○ |
| C-198 (UT-SEO-198) | SeoUrlUpdateEvent初期化 | Event/SeoUrlUpdateEvent.php | ○ |
| C-199 (UT-SEO-199) | getSeoUrls | Event/SeoUrlUpdateEvent.php | ○ |
| C-200 (UT-SEO-200) | SeoUrlTwigFactory::createTwigEnvironment | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **UT-SEO-106**: `MainCategoryEntity::getCategory`はv6.8.0でdeprecatedとなり、戻り値の型がnullableに変更予定。現行の挙動（nullの場合に空EntityEntity返却）の詳細確認が必要
  - 候補：Shopware v6.8.0リリースノート / アップグレードガイド
- **UT-SEO-200**: `SeoUrlTwigFactory`ファイルの詳細解析が未完了。メソッドの詳細な実装確認が必要
  - 候補：src/Core/Content/Seo/SeoUrlTwigFactory.php の完全解析

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク**: エンティティのゲッター/セッター関連テスト（UT-SEO-085〜UT-SEO-123）
- **1: 中リスク**: バリデーション・例外処理関連テスト（UT-SEO-124〜UT-SEO-143）
- **2: 高リスク**:
  - SEO URL生成・永続化のコアロジック（UT-SEO-001〜UT-SEO-028）
  - URL解決ロジック（UT-SEO-029〜UT-SEO-038）
  - hreflangタグ生成（UT-SEO-039〜UT-SEO-048）
  - API コントローラのcanonical URL更新（UT-SEO-150〜UT-SEO-161）

## 6) レビュアーチェックリスト（最小）
- [ ] SEO URL生成のテンプレートエラーハンドリング（UT-SEO-003, UT-SEO-004）が適切か確認
- [ ] canonical URL更新ロジック（UT-SEO-015〜UT-SEO-023）の網羅性を確認
- [ ] hreflang生成のドメイン数境界値テスト（UT-SEO-042, UT-SEO-044）が実装可能か確認
- [ ] APIコントローラのバリデーションテスト（UT-SEO-139〜UT-SEO-143）のHTTPステータスコード確認
- [ ] deprecated機能（UT-SEO-106）のテスト方針を検討
- [ ] SeoUrlTwigFactory（UT-SEO-200）の詳細実装確認
