---
generated_at: 2026-02-25 00:15:00
metrics:
  claims_total: 35
  claims_with_evidence: 32
  claims_without_evidence: 3
confidence_derived: 0.91
---

# 根拠レポート：データベース設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.91**
  - 根拠あり：32 / 35、根拠なし：3
- 優先レビュー（高）
  1. **Editor UI Settings のキー名詳細**：一部のlocalStorageキー名はコンポーネント内のリテラル定数であり、変数名のみ確認済み
  2. **Code Widget / Markdown Widget のlocalStorageキー**：具体的なキー文字列はwidgetコンポーネント内の定数から推定したが、完全な値確認が不完全
  3. **GitHub Metadata Cacheの完全な構造**：GitHubバックエンド固有のメタデータの全フィールドは推測を含む

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

- E-01: `packages/decap-cms-core/src/types/redux.ts` - Redux状態の型定義
- E-02: `packages/decap-cms-core/src/reducers/index.ts` - Reducerのルート定義
- E-03: `packages/decap-cms-core/src/reducers/entries.ts` - Entriesリデューサー（localStorage使用箇所含む）
- E-04: `packages/decap-cms-core/src/reducers/collections.ts` - Collectionsリデューサー
- E-05: `packages/decap-cms-core/src/reducers/editorialWorkflow.ts` - Editorial Workflowリデューサー
- E-06: `packages/decap-cms-core/src/reducers/auth.ts` - Authリデューサー
- E-07: `packages/decap-cms-core/src/reducers/config.ts` - Configリデューサー
- E-08: `packages/decap-cms-core/src/reducers/mediaLibrary.ts` - MediaLibraryリデューサー
- E-09: `packages/decap-cms-core/src/reducers/medias.ts` - Mediasリデューサー
- E-10: `packages/decap-cms-core/src/reducers/search.ts` - Searchリデューサー
- E-11: `packages/decap-cms-core/src/reducers/deploys.ts` - Deploysリデューサー
- E-12: `packages/decap-cms-core/src/reducers/globalUI.ts` - GlobalUIリデューサー
- E-13: `packages/decap-cms-core/src/reducers/status.ts` - Statusリデューサー
- E-14: `packages/decap-cms-core/src/reducers/notifications.ts` - Notificationsリデューサー
- E-15: `packages/decap-cms-core/src/reducers/integrations.ts` - Integrationsリデューサー
- E-16: `packages/decap-cms-core/src/reducers/cursors.js` - Cursorsリデューサー
- E-17: `packages/decap-cms-core/src/reducers/entryDraft.js` - EntryDraftリデューサー
- E-18: `packages/decap-cms-core/src/valueObjects/Entry.ts` - EntryValue型定義とファクトリ関数
- E-19: `packages/decap-cms-core/src/valueObjects/AssetProxy.ts` - AssetProxyクラス定義
- E-20: `packages/decap-cms-core/src/backend.ts` - Backend実装（MediaFile型、BackupEntry型、AuthStore）
- E-21: `packages/decap-cms-lib-util/src/implementation.ts` - Implementation interface、LocalTree型、User型
- E-22: `packages/decap-cms-lib-util/src/API.ts` - readFile、readFileMetadata関数（localForageキャッシュパターン）
- E-23: `packages/decap-cms-lib-util/src/localForage.ts` - localForageの初期化
- E-24: `packages/decap-cms-backend-github/src/API.ts` - GitHub固有のlocalForage利用（メタデータキャッシュ）
- E-25: `packages/decap-cms-lib-util/package.json` - localforageパッケージ依存
- E-26: `packages/decap-cms-core/src/components/Editor/EditorInterface.js` - エディタUI設定のlocalStorage利用
- E-27: `packages/decap-cms-widget-code/src/CodeControl.js` - コードウィジェットのlocalStorage利用
- E-28: `packages/decap-cms-widget-markdown/src/MarkdownControl/index.js` - マークダウンウィジェットのlocalStorage利用
- E-29: `packages/decap-cms-backend-git-gateway/src/implementation.ts` - netlifySiteURLのlocalStorage利用
- E-30: `packages/decap-cms-lib-auth/src/utils.js` - 認証トークンのlocalStorage管理

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Decap CMSはGitリポジトリをプライマリストレージとして使用し、RDBMSは使用しない | E-20, E-21 | ○ |
| C-02 | localForage(IndexedDB)をファイルコンテンツ・メタデータ・ツリーキャッシュに使用 | E-22, E-23, E-25 | ○ |
| C-03 | localStorageをUIの設定状態永続化に使用 | E-03, E-26, E-27, E-28 | ○ |
| C-04 | Redux StoreはImmutable.jsでアプリケーション状態を管理 | E-01, E-02 | ○ |
| C-05 | EntryValueの構造（collection, slug, path, raw, data等の全フィールド） | E-18 | ○ |
| C-06 | MediaFileの構造（name, id, size, displayURL, path, draft, url, file, field） | E-20 | ○ |
| C-07 | UnpublishedEntryの構造（slug, collection, status, diffs, updatedAt, pullRequestAuthor） | E-21 | ○ |
| C-08 | localForageのファイルコンテンツキャッシュキーパターン（gh.{SHA}, gh.{SHA}.blob） | E-22 | ○ |
| C-09 | localForageのメタデータキャッシュキーパターン（gh.{SHA}.meta） | E-22 | ○ |
| C-10 | localForageのローカルツリーキャッシュキーパターン（git.local.{branch}.{folder}.{extension}.{depth}） | E-21 | ○ |
| C-11 | localForageのエントリバックアップキーパターン（backup.{collection}.{slug}, backup） | E-20 | ○ |
| C-12 | localForageのGitHub固有メタデータキャッシュ（gh.meta.{key}） | E-24 | ○ |
| C-13 | localStorage: decap-cms.entries.sortキーでソート設定を永続化 | E-03 | ○ |
| C-14 | localStorage: decap-cms.entries.viewStyleキーで表示スタイルを永続化 | E-03 | ○ |
| C-15 | localStorage: 認証ユーザー情報の永続化（AuthStore） | E-20 | ○ |
| C-16 | localStorage: エディタUI設定の永続化（プレビュー、スクロール同期、i18n、分割ペイン） | E-26 | ○ |
| C-17 | localStorage: コードウィジェットのキーマップ・テーマ設定 | E-27 | ○ |
| C-18 | localStorage: マークダウンウィジェットの編集モード | E-28 | ○ |
| C-19 | localStorage: netlifySiteURL（Git Gateway用） | E-29 | ○ |
| C-20 | localStorage: decap-cms-auth（認証トークン） | E-30 | ○ |
| C-21 | Redux: authリデューサーの構造（isFetching, user, error） | E-06 | ○ |
| C-22 | Redux: configリデューサーの構造（backend, collections, media_folder等） | E-07, E-01 | ○ |
| C-23 | Redux: collectionsリデューサーの構造（OrderedMap、CollectionObject型） | E-04, E-01 | ○ |
| C-24 | Redux: entriesリデューサーの構造（entities, pages, sort, filter, group, viewStyle） | E-03, E-01 | ○ |
| C-25 | Redux: entryDraftリデューサーの構造（entry, fieldsMetaData, fieldsErrors, hasChanged, key） | E-17, E-01 | ○ |
| C-26 | Redux: editorialWorkflowリデューサーの構造（entities, pages） | E-05, E-01 | ○ |
| C-27 | Redux: mediaLibraryリデューサーの構造 | E-08, E-01 | ○ |
| C-28 | Redux: mediasリデューサーの構造（path => asset, isLoading, error） | E-09 | ○ |
| C-29 | Redux: searchリデューサーの構造（isFetching, term, collections, page, entryIds, queryHits等） | E-10 | ○ |
| C-30 | Redux: deploysリデューサーの構造 | E-11 | ○ |
| C-31 | Redux: globalUIリデューサーの構造（isFetching, useOpenAuthoring） | E-12 | ○ |
| C-32 | Redux: statusリデューサーの構造（auth.status, api.status, api.statusPage） | E-13 | ○ |
| C-33 | Editor UI Settingsの具体的なlocalStorageキー文字列 | E-26 | △ |
| C-34 | Code Widget / Markdown Widget の具体的なlocalStorageキー文字列 | E-27, E-28 | △ |
| C-35 | GitHub Metadata Cacheの値の完全な構造（PRメタ情報等の全フィールド） | E-24 | △ |

## 4) 不足情報（Unknown / Missing）
- Editor UI Settingsのキー名はコンポーネント内の定数変数（PREVIEW_VISIBLE等）として定義されているが、実際のキー文字列値は変数の中身を直接確認する必要がある。grepで使用箇所は確認済みだが、定数値そのものの完全な記述は確認していない。
  - 候補：`packages/decap-cms-core/src/components/Editor/EditorInterface.js` の定数定義部分をさらに精査
- Code WidgetのsettingsPersistKeysオブジェクトの具体的なキー文字列値は、ファイルの上部定数定義の確認が必要。
  - 候補：`packages/decap-cms-widget-code/src/CodeControl.js` の定数部分
- GitHub Metadata Cacheに保存される値の完全な構造は、GitHub API固有の実装であり、`gh.meta.{key}` に格納されるオブジェクトの全プロパティは推定を含む。
  - 候補：`packages/decap-cms-backend-github/src/API.ts` のsetItem呼び出し箇所の詳細確認

## 5) リスクフラグ（レビュー観点）
- 0: Gitリポジトリをプライマリストレージとして使用する基本アーキテクチャは、codebase全体から明確に確認できる。低リスク。
- 0: Redux Storeの各リデューサー構造は、型定義ファイルとリデューサー実装から直接確認できる。低リスク。
- 0: localForageのキャッシュキーパターンは、API.tsとimplementation.tsのコードから直接確認できる。低リスク。
- 1: localStorage使用箇所は複数のコンポーネント/ウィジェットに分散しており、全てを網羅できていない可能性がある。中リスク。
- 1: Decap CMSは本来RDBMSを使用しないプロジェクトであるため、従来のDB設計書のフォーマットとは異なるアプローチでデータモデルを記述している。読者がGitベースCMSに不慣れな場合、解釈に注意が必要。中リスク。

## 6) レビュアーチェックリスト（最小）
- [ ] Gitリポジトリをデータストアとして使用する基本アーキテクチャの記述が正確か
- [ ] localForageのキーパターン一覧が網羅的か（特にバックエンド固有のキャッシュ）
- [ ] localStorageの使用箇所が全てカバーされているか（ウィジェット固有の設定含む）
- [ ] Redux Storeの各リデューサーの構造が型定義・実装と一致しているか
- [ ] EntryValue, MediaFile, UnpublishedEntryの型定義がソースコードと整合しているか
- [ ] Editorial Workflowのステータス遷移（draft → pending_review → pending_publish）が正確か
- [ ] マルチバックエンド対応の記述（GitHub, GitLab, Bitbucket, Gitea, Azure DevOps）が正確か
- [ ] ER図のリレーションシップがコードの実際のデータ依存関係を正しく反映しているか
