---
generated_at: 2026-01-29 18:25:00
metrics:
  claims_total: 42
  claims_with_evidence: 40
  claims_without_evidence: 2
confidence_derived: 0.95
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：40 / 42、根拠なし：2
- 優先レビュー（高）
  1. **C-41（フロントエンドエントリーポイント）**：App.vueへの参照が間接的
  2. **C-42（ドキュメント一覧）**：一部ドキュメントは存在確認が必要

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

- E-01: `package.json` - プロジェクト依存関係定義（Node.js/Vue.js）
- E-02: `Gemfile` - プロジェクト依存関係定義（Ruby/Rails）
- E-03: `app/models/conversation.rb` - 会話モデル定義
- E-04: `app/controllers/application_controller.rb` - 基底コントローラー
- E-05: `config/routes.rb` - ルーティング定義
- E-06: `app/controllers/api/v1/accounts/conversations_controller.rb` - 会話APIコントローラー
- E-07: `app/services/conversations/filter_service.rb` - フィルターサービス
- E-08: `app/jobs/send_reply_job.rb` - メッセージ送信ジョブ
- E-09: `app/policies/conversation_policy.rb` - 会話ポリシー
- E-10: `app/builders/contact_inbox_builder.rb` - コンタクト受信トレイビルダー
- E-11: `app/javascript/dashboard/components/ChatList.vue` - チャットリストコンポーネント
- E-12: `app/javascript/dashboard/api/ApiClient.js` - APIクライアント基底クラス
- E-13: `app/javascript/dashboard/api/conversations.js` - 会話APIクライアント
- E-14: `app/javascript/dashboard/composables/useAccount.js` - アカウントcomposable
- E-15: `app/listeners/hook_listener.rb` - フックリスナー
- E-16: `app/dispatchers/async_dispatcher.rb` - 非同期ディスパッチャー
- E-17: `enterprise/app/` - Enterpriseディレクトリ構造
- E-18: `CLAUDE.md` (AGENTS.md) - 開発ガイドライン
- E-19: `app/javascript/dashboard/store/` - Vuexストア構造
- E-20: `app/javascript/dashboard/composables/` - composables構造
- E-21: `app/models/` - モデルディレクトリ構造
- E-22: `app/services/` - サービスディレクトリ構造
- E-23: `app/jobs/` - ジョブディレクトリ構造

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ChatwootはRuby on Rails + Vue.js 3の構成 | E-01, E-02 | ○ |
| C-02 | Ruby 3.4.4を使用 | E-02 (Gemfile:3) | ○ |
| C-03 | Rails 7.1を使用 | E-02 (Gemfile:7) | ○ |
| C-04 | Vue 3を使用 | E-01 (package.json:98) | ○ |
| C-05 | Vuex状態管理を使用 | E-01 (package.json:110) | ○ |
| C-06 | Conversationモデルの構造 | E-03 (conversation.rb:54-77) | ○ |
| C-07 | include/prepend_mod_withパターン | E-03 (conversation.rb:345-347), E-04 (application_controller.rb:28) | ○ |
| C-08 | enum statusの定義 | E-03 (conversation.rb:75) | ○ |
| C-09 | enum priorityの定義 | E-03 (conversation.rb:76) | ○ |
| C-10 | 会話のスコープ定義 | E-03 (conversation.rb:78-91) | ○ |
| C-11 | APIルーティング構造 | E-05 (routes.rb:40-159) | ○ |
| C-12 | toggle_statusアクション | E-06 (conversations_controller.rb:78-89) | ○ |
| C-13 | FilterServiceの実装 | E-07 (filter_service.rb:1-52) | ○ |
| C-14 | Channel Strategyパターン | E-08 (send_reply_job.rb:4-16) | ○ |
| C-15 | Punditポリシーパターン | E-09 (conversation_policy.rb:1-47) | ○ |
| C-16 | Builderパターン | E-10 (contact_inbox_builder.rb:4-10) | ○ |
| C-17 | Vue Composition API使用 | E-11 (ChatList.vue:1-14) | ○ |
| C-18 | script setup構文の使用 | E-11 (ChatList.vue:1) | ○ |
| C-19 | ApiClientの実装 | E-12 (ApiClient.js:5-61) | ○ |
| C-20 | accountScopedオプション | E-12 (ApiClient.js:35-37) | ○ |
| C-21 | ConversationApiの実装 | E-13 (conversations.js:4-18) | ○ |
| C-22 | useAccountのcomposable実装 | E-14 (useAccount.js:9-65) | ○ |
| C-23 | HookListenerの実装 | E-15 (hook_listener.rb:1-72) | ○ |
| C-24 | AsyncDispatcherの実装 | E-16 (async_dispatcher.rb:1-26) | ○ |
| C-25 | Wisperによるイベント駆動 | E-02 (Gemfile:98), E-16 | ○ |
| C-26 | Enterpriseディレクトリ構造 | E-17 | ○ |
| C-27 | Sidekiqジョブキュー | E-02 (Gemfile:132-136) | ○ |
| C-28 | デバイス認証 | E-02 (Gemfile:82-89) | ○ |
| C-29 | ファイル命名規則（snake_case.rb） | E-21, E-22, E-23 | ○ |
| C-30 | Vue命名規則（PascalCase.vue） | E-11, E-19 | ○ |
| C-31 | composable命名規則（use*） | E-20 | ○ |
| C-32 | Service命名規則（*Service） | E-22 | ○ |
| C-33 | Job命名規則（*Job） | E-23 | ○ |
| C-34 | Policy命名規則（*Policy） | E-09 | ○ |
| C-35 | Builder命名規則（*Builder） | E-10 | ○ |
| C-36 | Listener命名規則（*Listener） | E-15 | ○ |
| C-37 | APIClient命名規則（*Api） | E-13 | ○ |
| C-38 | Channel命名規則（Channel::*） | E-03 (conversation.rb関連), E-08 | ○ |
| C-39 | モノリシックアーキテクチャ | E-01, E-02, ディレクトリ構造 | ○ |
| C-40 | 開発ガイドラインの存在 | E-18 | ○ |
| C-41 | フロントエンドエントリーポイント（App.vue） | **間接的参照** | △ |
| C-42 | swagger/ディレクトリの存在 | ディレクトリ構造確認済み | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-41（フロントエンドエントリーポイント）**：App.vueファイルは存在を確認したが、内容の詳細読み込みは行っていない
  - 候補：`app/javascript/dashboard/App.vue`の内容確認
- **テスト構造の詳細**：`spec/`ディレクトリの構造は確認したが、詳細なテストパターンは未調査
  - 候補：`spec/models/`, `spec/controllers/`, `spec/services/`の詳細

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**：大部分の主張はソースコードから直接引用
- **0 (低リスク)**：命名規則は実際のディレクトリ構造とファイル名から確認
- **1 (中リスク)**：アーキテクチャ図はコード分析からの推論を含む
- **0 (低リスク)**：業務フロー追跡例は実際のコードパスを追跡

## 6) レビュアーチェックリスト（最小）
- [ ] Enterprise拡張パターン（prepend_mod_with）の説明が正確か
- [ ] イベント駆動アーキテクチャの説明がWisperの実装と一致するか
- [ ] Channel Strategyパターンの説明が`send_reply_job.rb`と一致するか
- [ ] Vue Composableの命名規則が実際のファイル名と一致するか
- [ ] ディレクトリ構造図が現在のプロジェクト構造と一致するか
- [ ] 用語集の定義が実際のドメインモデルと一致するか
