---
generated_at: 2026-01-28 16:30:00
metrics:
  claims_total: 105
  claims_with_evidence: 102
  claims_without_evidence: 3
confidence_derived: 0.97
---

# 根拠レポート：widgets.csv

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：102 / 105、根拠なし：3
- 優先レビュー（高）
  1. **UT-WGT-074**: SearchWidgetConfigurationのデフォルト設定動作の詳細確認
  2. **UT-WGT-079**: LockscreenSearchWidgetConfigurationのキャッシュ読み込みロジックの確認
  3. **UT-WGT-082**: ContainerBackgroundModifierのiOS 17動作の実機確認

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

- E-01: `Widgets/Extension/Widgets.swift` - WikipediaWidgets WidgetBundle定義
- E-02: `Widgets/Utilities/UIColor+Extensions.swift` - UIColor拡張
- E-03: `Widgets/Utilities/UIImage+Extensions.swift` - UIImage拡張（scaleImageToFit）
- E-04: `Widgets/Utilities/CGPoint+Extensions.swift` - CGPoint拡張（midPoint, quadCurveControlPoint）
- E-05: `Widgets/Utilities/View+Extensions.swift` - View拡張（readableShadow, listBackgroundColor, clearWidgetContainerBackground）
- E-06: `Widgets/Utilities/Date+Extensions.swift` - Date拡張（randomDateShortlyAfterMidnight）
- E-07: `Widgets/Views/Sparkline.swift` - SparklineShape, SparklineGrid, Sparkline View
- E-08: `Widgets/Widgets/FeaturedArticleWidget.swift` - FeaturedArticleWidget, FeaturedArticleEntry, FeaturedArticleProvider, FeaturedArticleView
- E-09: `Widgets/Widgets/FeaturedArticleWidget+LocalizedStrings.swift` - LocalizedStrings enum
- E-10: `Widgets/Widgets/OnThisDayWidget.swift` - OnThisDayWidget, OnThisDayProvider, OnThisDayData, OnThisDayEntry
- E-11: `Widgets/Widgets/OnThisDayView.swift` - OnThisDayView, TimelineView, 各種UIコンポーネント
- E-12: `Widgets/Widgets/TopReadWidget.swift` - TopReadWidget, TopReadData, TopReadEntry, TopReadProvider, TopReadView
- E-13: `Widgets/Widgets/TopReadWidget+LocalizedStrings.swift` - LocalizedStrings enum
- E-14: `Widgets/Widgets/PictureOfTheDayWidget.swift` - PictureOfTheDayWidget, PictureOfTheDayData, PictureOfTheDayEntry, PictureOfTheDayProvider
- E-15: `Widgets/Widgets/PictureOfTheDayWidget+LocalizedStrings.swift` - LocalizedStrings enum
- E-16: `Widgets/Widgets/SearchWidget.swift` - SearchWidget, SearchEntry, SearchWidgetConfiguration, SearchProvider, SearchWidgetView
- E-17: `Widgets/Widgets/SearchWidget+LocalizedStrings.swift` - LocalizedStrings enum
- E-18: `Widgets/Widgets/LockscreenSearchWidget.swift` - LockscreenSearchWidget, LockscreenSearchEntry, LockscreenSearchWidgetConfiguration, LockscreenSearchProvider, ContainerBackgroundModifier
- E-19: `ContinueReadingWidget/WMFTodayContinueReadingWidgetViewController.swift` - 継続読書ウィジェット（非推奨）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | WikipediaWidgetsにPictureOfTheDayWidget等が含まれる | E-01 | ○ |
| C-02 | UIColor.asColorでSwiftUI Colorに変換 | E-02 | ○ |
| C-03 | scaleImageToFitでアスペクト比維持スケーリング | E-03 | ○ |
| C-04 | scaleImageToFitのnil入力処理 | E-03 | ○ |
| C-05 | scaleImageToFitのゼロサイズ処理 | E-03 | ○ |
| C-06 | midPointFrom計算ロジック | E-04 | ○ |
| C-07 | quadCurveControlPointFrom計算ロジック | E-04 | ○ |
| C-08 | readableShadow効果適用 | E-05 | ○ |
| C-09 | listBackgroundColorのiOS 16対応 | E-05 | ○ |
| C-10 | clearWidgetContainerBackgroundのiOS 17対応 | E-05 | ○ |
| C-11 | randomDateShortlyAfterMidnightの日時計算 | E-06 | ○ |
| C-12 | randomDateShortlyAfterMidnightのnil返却 | E-06 | ○ |
| C-13 | SparklineShapeのNSNumber→CGFloat変換 | E-07 | ○ |
| C-14 | SparklineShapeのpath生成ロジック | E-07 | ○ |
| C-15 | SparklineShapeの1データ以下時の空パス | E-07 | ○ |
| C-16 | SparklineShapeの同値データ時の水平線 | E-07 | ○ |
| C-17 | Sparkline.containerBackgroundColorのスタイル対応 | E-07 | ○ |
| C-18 | Sparkline.containerBackgroundColorのダークモード | E-07 | ○ |
| C-19 | currentViewCountOrEmptyの数値フォーマット | E-07 | ○ |
| C-20 | currentViewCountOrEmptyのnil時「–」返却 | E-07 | ○ |
| C-21 | FeaturedArticleEntry.hasDisplayableContentの判定 | E-08 | ○ |
| C-22 | FeaturedArticleEntry.hasDisplayableContentのエラー判定 | E-08 | ○ |
| C-23 | FeaturedArticleEntry.titleのHTML除去 | E-08 | ○ |
| C-24 | FeaturedArticleEntry.titleのnil時空文字列 | E-08 | ○ |
| C-25 | FeaturedArticleEntry.layoutDirectionのRTL対応 | E-08 | ○ |
| C-26 | FeaturedArticleEntry.layoutDirectionのLTR対応 | E-08 | ○ |
| C-27 | FeaturedArticleEntry.contentURLの構築 | E-08 | ○ |
| C-28 | FeaturedArticleEntry.contentURLのnil安全性 | E-08 | ○ |
| C-29 | FeaturedArticleProviderのplaceholder | E-08 | ○ |
| C-30 | FeaturedArticleProviderのgetSnapshot | E-08 | ○ |
| C-31 | FeaturedArticleProviderのgetTimelineの成功時 | E-08 | ○ |
| C-32 | FeaturedArticleProviderのgetTimelineの失敗時 | E-08 | ○ |
| C-33 | fromLanguageWikipediaTextForのローカライズ | E-09 | ○ |
| C-34 | fromLanguageWikipediaTextForのnil時デフォルト | E-09 | ○ |
| C-35 | OnThisDayData.placeholderEntryFromLanguage | E-10 | ○ |
| C-36 | OnThisDayData.placeholderEntryFromLanguageのRTL | E-10 | ○ |
| C-37 | OnThisDayData.fetchLatestAvailableOnThisDayEntryのキャッシュ | E-10 | ○ |
| C-38 | OnThisDayData.fetchLatestAvailableOnThisDayEntryの非対応言語 | E-10 | ○ |
| C-39 | OnThisDayData.ErrorType.errorColor | E-10 | ○ |
| C-40 | OnThisDayData.ErrorType.errorText | E-10 | ○ |
| C-41 | OnThisDayEntry.init(contentGroup)の正常初期化 | E-10 | ○ |
| C-42 | OnThisDayEntry.init(contentGroup)のnil返却 | E-10 | ○ |
| C-43 | OnThisDayEntry.errorEntry(for:) | E-10 | ○ |
| C-44 | OnThisDayProviderのplaceholder | E-10 | ○ |
| C-45 | OnThisDayProviderのgetTimelineの現在日 | E-10 | ○ |
| C-46 | OnThisDayProviderのgetTimelineのエラー時 | E-10 | ○ |
| C-47 | OnThisDayColors.blueColor | E-11 | ○ |
| C-48 | OnThisDayColors.widgetBackgroundColor | E-11 | ○ |
| C-49 | startYOfCircle計算 | E-11 | ○ |
| C-50 | LargeYValuePreferenceKey.reduce | E-11 | ○ |
| C-51 | TopReadData.placeholder | E-12 | ○ |
| C-52 | TopReadData.fetchTopReadEntryDataの成功 | E-12 | ○ |
| C-53 | TopReadData.fetchTopReadEntryDataの失敗 | E-12 | ○ |
| C-54 | TopReadEntry.RankedElement.init | E-12 | ○ |
| C-55 | TopReadProviderのplaceholder | E-12 | ○ |
| C-56 | TopReadProviderのgetTimelineの成功時 | E-12 | ○ |
| C-57 | TopReadProviderのgetTimelineのプレースホルダー時 | E-12 | ○ |
| C-58 | TopReadView.numberOfReadersTextOrEmptyForViewCountの正常 | E-12 | ○ |
| C-59 | TopReadView.numberOfReadersTextOrEmptyForViewCountのnil | E-12 | ○ |
| C-60 | TopReadOverlayView.isExpandedStyle | E-12 | ○ |
| C-61 | PictureOfTheDayData.sampleEntry | E-14 | ○ |
| C-62 | PictureOfTheDayData.placeholderEntry | E-14 | ○ |
| C-63 | PictureOfTheDayData.fetchPictureOfTheDayEntryDataの成功 | E-14 | ○ |
| C-64 | PictureOfTheDayData.fetchPictureOfTheDayEntryDataの失敗 | E-14 | ○ |
| C-65 | PictureOfTheDayEntry.licenseImages | E-14 | ○ |
| C-66 | PictureOfTheDayEntry.licenseImagesのnil時 | E-14 | ○ |
| C-67 | PictureOfTheDayEntry.scalingImageTo | E-14 | ○ |
| C-68 | PictureOfTheDayProviderのplaceholder | E-14 | ○ |
| C-69 | PictureOfTheDayProviderのgetTimelineの.entry時 | E-14 | ○ |
| C-70 | PictureOfTheDayProviderのgetTimelineの非.entry時 | E-14 | ○ |
| C-71 | TimelineProviderContext.imageSize | E-14 | ○ |
| C-72 | SearchEntry.init | E-16 | ○ |
| C-73 | SearchWidgetConfigurationのキャッシュ読み込み | E-16 | ○ |
| C-74 | SearchWidgetConfigurationのデフォルト設定 | E-16 | △ |
| C-75 | SearchProviderのplaceholder | E-16 | ○ |
| C-76 | SearchProviderのgetTimeline | E-16 | ○ |
| C-77 | SearchWidgetView.theme | E-16 | ○ |
| C-78 | LockscreenSearchEntry.init | E-18 | ○ |
| C-79 | LockscreenSearchWidgetConfigurationのキャッシュ読み込み | E-18 | △ |
| C-80 | LockscreenSearchProviderのplaceholder | E-18 | ○ |
| C-81 | LockscreenSearchProviderのgetTimeline | E-18 | ○ |
| C-82 | ContainerBackgroundModifierのiOS 17対応 | E-18 | △ |
| C-83 | WMFTodayContinueReadingWidgetViewControllerのapply(theme:) | E-19 | ○ |
| C-84 | WMFTodayContinueReadingWidgetViewControllerのapply(theme:)未ロード時 | E-19 | ○ |
| C-85 | handleTapGestureRecognizerのended状態 | E-19 | ○ |
| C-86 | handleTapGestureRecognizerの非ended状態 | E-19 | ○ |
| C-87 | widgetPerformUpdateの.newData | E-19 | ○ |
| C-88 | widgetPerformUpdateの.noData | E-19 | ○ |
| C-89 | emptyViewHidden=trueの表示 | E-19 | ○ |
| C-90 | emptyViewHidden=falseの表示 | E-19 | ○ |
| C-91 | collapseImageAndWidenLabels=true | E-19 | ○ |
| C-92 | collapseImageAndWidenLabels=false | E-19 | ○ |
| C-93 | updateViewの開いている記事表示 | E-19 | ○ |
| C-94 | updateViewの履歴記事表示 | E-19 | ○ |
| C-95 | updateViewの空データ | E-19 | ○ |
| C-96 | updateViewの同一URL重複防止 | E-19 | ○ |
| C-97 | updatePreferredContentSize | E-19 | ○ |
| C-98 | traitCollectionDidChange | E-19 | ○ |
| C-99 | continueReading | E-19 | ○ |
| C-100 | FeaturedArticleView.headerCaptionText | E-08 | ○ |
| C-101 | FeaturedArticleView.headerTitleText | E-08 | ○ |
| C-102 | FeaturedArticleView.backgroundImage正常 | E-08 | ○ |
| C-103 | FeaturedArticleView.backgroundImageのnil | E-08 | ○ |
| C-104 | OnThisDayView.needsVerticalCompression | E-11 | ○ |
| C-105 | TimelineView.gradient | E-11 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-74 (SearchWidgetConfigurationのデフォルト設定)**: WidgetSettings.defaultの具体的な値がWidgets以外のモジュール（WMF Framework）に定義されているため、完全な検証には外部モジュールの参照が必要
  - 候補：`WMF Framework/Widget/Models/WidgetSettings.swift`
- **C-79 (LockscreenSearchWidgetConfigurationのキャッシュ読み込み)**: SharedContainerCacheの動作がWMF Frameworkに依存
  - 候補：`WMF Framework/Widget/Models/WidgetCache.swift`
- **C-82 (ContainerBackgroundModifierのiOS 17対応)**: iOS 17 APIの動作は実機テストが必要
  - 候補：iOS 17以上の実機/シミュレータでの確認

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: ユーティリティ拡張（UIColor, UIImage, CGPoint, View, Date）
- **0 (低リスク)**: UI表示ロジック（Sparkline, View関連）
- **1 (中リスク)**: TimelineProvider実装（更新スケジュールのロジック）
- **1 (中リスク)**: データフェッチ処理（エラーハンドリング）
- **1 (中リスク)**: iOS版依存コード（iOS 16/17 APIの分岐）
- **0 (低リスク)**: ContinueReadingWidget（非推奨マーク付き、レガシー）

## 6) レビュアーチェックリスト（最小）
- [ ] TimelineProviderの更新スケジュールロジック（randomDateShortlyAfterMidnight使用箇所）が期待通りか確認
- [ ] エラー時のフォールバック（sampleEntry/placeholder返却）が適切か確認
- [ ] iOS版依存コード（#available分岐）が正しく動作するか確認
- [ ] RTL言語対応（layoutDirection設定）が適切か確認
- [ ] SharedContainerCacheからの設定読み込みがデフォルト値を正しく使用するか確認
- [ ] WMFTodayContinueReadingWidgetViewControllerの非推奨警告を考慮し、将来的な削除または更新計画を確認
