---
generated_at: 2026-01-30 13:30:00
metrics:
  claims_total: 48
  claims_with_evidence: 45
  claims_without_evidence: 3
confidence_derived: 0.94
---

# 根拠レポート：コードリーディングガイドライン

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：45 / 48、根拠なし：3
- 優先レビュー（高）
  1. **CRDT同期の詳細実装**：根拠不足（crdt パッケージの詳細未確認）
  2. **Envelope Budgetingの用語定義**：外部概念のため根拠不足
  3. **全てのカスタムフックの網羅性**：一部フックのみ確認

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

- E-01: `package.json` - ルートパッケージ設定
- E-02: `README.md` - プロジェクト概要
- E-03: `packages/loot-core/package.json` - コアパッケージ設定
- E-04: `packages/desktop-client/package.json` - フロントエンドパッケージ設定
- E-05: `packages/loot-core/src/server/main.ts` - サーバーメインエントリーポイント
- E-06: `packages/loot-core/src/server/budget/app.ts` - 予算ドメインハンドラー
- E-07: `packages/loot-core/src/types/models/transaction.ts` - トランザクション型定義
- E-08: `packages/desktop-client/src/index.tsx` - Webフロントエントリーポイント
- E-09: `packages/desktop-client/src/components/App.tsx` - アプリコンポーネント
- E-10: `packages/desktop-electron/index.ts` - Electronメインプロセス
- E-11: `packages/sync-server/src/app.ts` - 同期サーバーアプリ
- E-12: `packages/desktop-client/src/hooks/useAccounts.ts` - アカウントフック
- E-13: `packages/loot-core/src/types/models/` - モデル型定義ディレクトリ
- E-14: `packages/loot-core/src/server/*/app.ts` - 各ドメインアプリ
- E-15: `packages/desktop-client/src/hooks/*.ts` - カスタムフックファイル群

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | TypeScriptが主要言語として使用されている | E-01, E-03, E-04 | ○ |
| C-02 | モノレポ構成でワークスペースを使用 | E-01 | ○ |
| C-03 | loot-coreがコアビジネスロジックを担当 | E-03, E-05 | ○ |
| C-04 | desktop-clientがReactフロントエンドを担当 | E-04, E-08 | ○ |
| C-05 | desktop-electronがデスクトップアプリを担当 | E-10 | ○ |
| C-06 | sync-serverがExpress同期サーバーを担当 | E-11 | ○ |
| C-07 | TransactionEntity型が定義されている | E-07 | ○ |
| C-08 | App/Handlersパターンが使用されている | E-05, E-06 | ○ |
| C-09 | createApp関数でアプリインスタンスを生成 | E-06 | ○ |
| C-10 | mutator/undoableラッパーが使用されている | E-06 | ○ |
| C-11 | Redux Toolkitが状態管理に使用されている | E-04, E-08 | ○ |
| C-12 | React 19が使用されている | E-04 | ○ |
| C-13 | Expressフレームワークが使用されている | E-11 | ○ |
| C-14 | Electronでデスクトップアプリが構築されている | E-10 | ○ |
| C-15 | カスタムフックがhooks/ディレクトリに配置 | E-12, E-15 | ○ |
| C-16 | useAccountsフックが存在する | E-12 | ○ |
| C-17 | ファイル命名規則でapp.tsがドメインハンドラー | E-14 | ○ |
| C-18 | xxxSlice.tsがReduxスライスを示す | E-08 | ○ |
| C-19 | useXxx.tsがカスタムフックを示す | E-15 | ○ |
| C-20 | Xxx.tsxがReactコンポーネントを示す | E-09 | ○ |
| C-21 | プロバイダーパターンが使用されている | E-08 | ○ |
| C-22 | SQLiteがデータ永続化に使用されている | E-03, E-05 | ○ |
| C-23 | IndexedDBがWeb版で使用されている | E-03 | ○ |
| C-24 | 金額は整数で内部管理される | E-05 | ○ |
| C-25 | BudgetHandlers型が定義されている | E-06 | ○ |
| C-26 | createCategory関数が存在する | E-06 | ○ |
| C-27 | updateCategory関数が存在する | E-06 | ○ |
| C-28 | deleteCategory関数が存在する | E-06 | ○ |
| C-29 | Viteがビルドツールとして使用されている | E-03, E-04 | ○ |
| C-30 | Vitestがテストフレームワークとして使用されている | E-03, E-04 | ○ |
| C-31 | i18nextが国際化に使用されている | E-04 | ○ |
| C-32 | react-reduxがRedux連携に使用されている | E-04 | ○ |
| C-33 | react-routerがルーティングに使用されている | E-04 | ○ |
| C-34 | IPCがElectronプロセス間通信に使用されている | E-10 | ○ |
| C-35 | app.method()でAPIエンドポイントを登録 | E-06 | ○ |
| C-36 | send()でクライアントからサーバーを呼び出し | E-08 | ○ |
| C-37 | useDispatch/useSelectorがRedux連携に使用されている | E-12 | ○ |
| C-38 | useEffectがReactライフサイクル管理に使用されている | E-09, E-12 | ○ |
| C-39 | CORSミドルウェアが使用されている | E-11 | ○ |
| C-40 | rate-limitミドルウェアが使用されている | E-11 | ○ |
| C-41 | better-sqlite3がNode.js版SQLiteに使用されている | E-03 | ○ |
| C-42 | absurd-sqlがWeb版SQLiteに使用されている | E-03 | ○ |
| C-43 | date-fnsが日付処理に使用されている | E-03, E-04 | ○ |
| C-44 | Playwrightがe2eテストに使用されている | E-04 | ○ |
| C-45 | ローカルファーストアーキテクチャを採用している | E-02 | ○ |
| C-46 | CRDT同期が実装されている | **根拠不足** | △ |
| C-47 | Envelope Budgetingの概念が使用されている | **根拠不足** | △ |
| C-48 | 全てのカスタムフックを網羅的に記載している | **根拠不足** | △ |

## 4) 不足情報（Unknown / Missing）
- **C-46: CRDT同期の詳細**
  - crdt パッケージのソースコードを詳細に確認していない
  - 候補: `packages/crdt/src/crdt/timestamp.ts` / `packages/crdt/src/crdt/merkle.ts`

- **C-47: Envelope Budgetingの定義**
  - 外部概念であり、コードベースに明示的な定義がない
  - 候補: README.md内の外部リンク / actualbudget.org ドキュメント

- **C-48: カスタムフックの網羅性**
  - hooks/ディレクトリには70以上のフックが存在するが、全てを確認していない
  - 候補: `packages/desktop-client/src/hooks/` 配下の全ファイル確認

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 言語基礎、命名規則、ディレクトリ構造の説明
  - ソースコードから直接確認可能な内容

- **1（中リスク）**: アーキテクチャ図、データフロー説明
  - コードから推測した部分があり、実装詳細と異なる可能性

- **2（高リスク）**: CRDT同期、Envelope Budgetingの説明
  - 詳細な検証が不足している

## 6) レビュアーチェックリスト（最小）
- [ ] 言語基礎セクションのコード例が実際のファイルと一致するか確認
- [ ] ディレクトリ構造図が現在のプロジェクト構造と一致するか確認
- [ ] App/Handlersパターンの説明が実装と整合しているか確認
- [ ] カスタムフックの使用例が正確か確認
- [ ] データフロー図がElectron/Web両方の動作を正しく表現しているか確認
- [ ] 用語集の定義が開発チームの認識と一致するか確認
- [ ] トラブルシューティングの内容が実際の問題解決に役立つか確認
