---
generated_at: 2026-01-30 13:55:00
metrics:
  claims_total: 44
  claims_with_evidence: 44
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：docs モジュール単体テストケース一覧

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコード上の該当メソッド・関数が存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：参照すべきソースファイルを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：44 / 44、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースにソースコードの根拠あり

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `packages/docs/src/remark/mentions.js` - GitHub メンションプラグイン（githubMentionPlugin 関数）
- E-02: `packages/docs/src/components/Image.jsx` - 画像コンポーネント（スケール処理ロジック）
- E-03: `packages/docs/src/components/Button.jsx` - ボタンコンポーネント
- E-04: `packages/docs/src/components/HomepageFeatures/index.jsx` - ホームページ機能コンポーネント
- E-05: `packages/docs/src/components/Key.jsx` - キーボードショートカット表示（title, detectMac, transform 関数）
- E-06: `packages/docs/src/components/DownloadCard.tsx` - ダウンロードカードコンポーネント
- E-07: `packages/docs/src/theme/Layout/index.jsx` - レイアウトラッパー
- E-08: `packages/docs/src/theme/MDXComponents.js` - MDX コンポーネントマッピング
- E-09: `packages/docs/src/pages/index.jsx` - ホームページ（SmallFeature, MediumFeature, BigFeature, Hello 関数）
- E-10: `packages/docs/docusaurus.config.js` - Docusaurus 設定ファイル
- E-11: `packages/docs/docs-sidebar.js` - サイドバー設定ファイル
- E-12: `packages/docs/docusaurus.netlify-config.js` - Netlify 用設定ファイル
- E-13: `packages/docs/babel.config.js` - Babel 設定ファイル

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

### githubMentionPlugin (mentions.js)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GitHub メンションがリンクに変換される | E-01: L3-42 transformer関数、pattern = /@([\w-]+)/g | ○ |
| C-02 | 複数メンションの変換 | E-01: L11 while ((match = pattern.exec(text))) | ○ |
| C-03 | メンションなしの場合変換しない | E-01: L35 if (segments.length > 1) 条件 | ○ |
| C-04 | @記号なしでユーザー名のみリンクテキスト | E-01: L24 コメント「the @ is intentionally not included」 | ○ |
| C-05 | ハイフン付きユーザー名の処理 | E-01: L4 パターン [\w-]+ | ○ |

### Image (Image.jsx)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-06 | @2x スケール画像の処理 | E-02: L35 match = src.src.match(/@(\d+)x/) | ○ |
| C-07 | @3x スケール画像の処理 | E-02: L37-44 scale = parseInt(match[1])、width/height / scale | ○ |
| C-08 | スケール指定なしの画像 | E-02: L53 return <IdealImage img={img} theme={theme} {...props} /> | ○ |
| C-09 | img prop が undefined の場合 | E-02: L54-57 else { return <img {...props} /> } | ○ |

### Button (Button.jsx)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | primary prop でスタイル切り替え | E-03: L10-11 primary ? classes.primary : '' | ○ |
| C-11 | primary なしで標準スタイル | E-03: L10-11 条件式 | ○ |
| C-12 | to prop でリンク先指定 | E-03: L13 to={to} | ○ |
| C-13 | className の結合 | E-03: L10-12 テンプレートリテラルによるクラス結合 | ○ |

### HomepageFeatures (HomepageFeatures/index.jsx)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-14 | 3つの機能カード表示 | E-04: L7-38 FeatureList 配列（3要素） | ○ |
| C-15 | title と description の表示 | E-04: L40-51 Feature コンポーネント | ○ |

### Key (Key.jsx)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | title 関数で先頭大文字化 | E-05: L5-9 str[0].toUpperCase() + str.slice(1).toLowerCase() | ○ |
| C-17 | title 関数で空文字列対応 | E-05: L6-8 if (str.length > 0) | ○ |
| C-18 | detectMac でMac検出 | E-05: L12-14 /(Mac\|iPhone\|iPod\|iPad)/i.test(navigator.platform) | ○ |
| C-19 | detectMac でWindows検出 | E-05: L12-14 正規表現がマッチしない場合 | ○ |
| C-20 | detectMac でiPhone検出 | E-05: L12-14 正規表現に iPhone を含む | ○ |
| C-21 | transform でMac環境のcmd | E-05: L16-19 if (isMacLike) { return mod } | ○ |
| C-22 | transform で非Mac環境のcmd | E-05: L21-24 case 'cmd': return 'ctrl' | ○ |
| C-23 | transform で変換対象外キー | E-05: L25 default: return mod | ○ |
| C-24 | mod prop でキーシーケンス | E-05: L43-44 mods = mod.split(' ') | ○ |
| C-25 | arrow prop で矢印記号 | E-05: L47-49 k = arrows[arrow]、L29-34 arrows 定義 | ○ |
| C-26 | fixed prop で変換スキップ | E-05: L51 fixed ? mod : transform(mod, isMacLike) | ○ |

### DownloadCard (DownloadCard.tsx)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | プラットフォーム名の表示 | E-06: L35 <h3 style={...}>{platform}</h3> | ○ |
| C-28 | 複数ダウンロードリンクの表示 | E-06: L36-44 links.map(link => ...) | ○ |
| C-29 | 空配列の場合リンクなし | E-06: L36-44 map の動作（空配列で要素なし） | ○ |

### LayoutWrapper (Layout/index.jsx)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | props が Layout に渡される | E-07: L4 <Layout {...props} /> | ○ |

### MDXComponents (MDXComponents.js)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | img が Image にマッピング | E-08: L7 img: Image | ○ |
| C-32 | Key コンポーネントのエクスポート | E-08: L8 Key | ○ |

### index.jsx (ホームページ)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | SmallFeature の learnMore リンク | E-09: L287 {learnMore ? <Link to={learnMore}>Learn more</Link> : null} | ○ |
| C-34 | SmallFeature の learnMore 未指定 | E-09: L287 三項演算子の null 分岐 | ○ |
| C-35 | MediumFeature の flip prop | E-09: L297-299 flip ? classes.mediumFeature_flip : '' | ○ |
| C-36 | MediumFeature の media prop | E-09: L305-308 media ? ... : <img ... /> | ○ |
| C-37 | BigFeature の srcDark 未指定フォールバック | E-09: L315 const imgDark = srcDark ? srcDark : srcLight | ○ |
| C-38 | BigFeature の srcDark 指定 | E-09: L315, L327-330 ThemedImage sources 設定 | ○ |
| C-39 | Hello コンポーネントのレンダリング | E-09: L9-277 Hello 関数全体 | ○ |

### 設定ファイル
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | docusaurus.config の構造 | E-10: L12-214 module.exports 全体（title, url, presets 等） | ○ |
| C-41 | remarkプラグインの設定 | E-10: L8 beforeDefaultRemarkPlugins: [require('./src/remark/mentions')] | ○ |
| C-42 | サイドバー構造 | E-11: L15-336 sidebars.docs 配列 | ○ |
| C-43 | Netlify設定の baseUrl | E-12: L9 baseUrl: '/' | ○ |
| C-44 | Babel preset 設定 | E-13: L2 presets: [require.resolve('@docusaurus/core/lib/babel/preset')] | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースにソースコード上の根拠が存在する

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - docs モジュールはドキュメントサイト用のUI コンポーネントと設定ファイルで構成されており、ビジネスロジックやデータ処理の複雑性は低い

## 6) レビュアーチェックリスト（最小）
- [ ] Key.jsx の OS 検出ロジック（detectMac）が全対象プラットフォームで正しく動作するか（E-05 参照）
- [ ] Image.jsx のスケール計算が @2x, @3x 以外のスケール値でも正しく動作するか（E-02 参照）
- [ ] mentions.js のユーザー名パターンが GitHub の実際のユーザー名ルールと一致するか（E-01 参照）
- [ ] 設定ファイルのプラグイン設定が最新のDocusaurusバージョンと互換性があるか（E-10, E-11 参照）
