---
generated_at: 2026-01-29 15:30: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. **Sidekiq キュー優先度の動作順序**：ドキュメントからは優先度の記載があるが、実際の処理順序は設定のみから推測
  2. **OpenSearchのバージョン**：明示的なバージョン指定がない

## 2) 参照した情報（Evidence一覧）

- E-01: `Gemfile` - Ruby依存関係とバージョン定義
- E-02: `package.json` - フロントエンド依存関係とバージョン定義
- E-03: `config/application.rb` - Rails設定とEnterprise Edition読み込み
- E-04: `config/database.yml` - PostgreSQL設定
- E-05: `config/cable.yml` - ActionCable/Redis設定
- E-06: `config/sidekiq.yml` - Sidekiqキュー設定
- E-07: `config/routes.rb` - ルーティング定義
- E-08: `config/storage.yml` - ファイルストレージ設定
- E-09: `docker-compose.yaml` - 開発環境ミドルウェア構成
- E-10: `app/controllers/application_controller.rb` - 認証・認可基盤
- E-11: `app/controllers/concerns/request_exception_handler.rb` - エラーハンドリング
- E-12: `config/initializers/devise.rb` - Devise認証設定
- E-13: `config/initializers/rack_attack.rb` - レート制限設定
- E-14: `config/initializers/sentry.rb` - Sentryエラー監視設定
- E-15: `config/initializers/lograge.rb` - ロギング設定
- E-16: `config/initializers/searchkick.rb` - 検索エンジン設定
- E-17: `config/initializers/event_handlers.rb` - イベントハンドラ設定
- E-18: `app/dispatchers/dispatcher.rb` - イベントディスパッチャー
- E-19: `app/dispatchers/async_dispatcher.rb` - 非同期ディスパッチャー
- E-20: `app/dispatchers/base_dispatcher.rb` - Wisperベースディスパッチャー
- E-21: `app/listeners/base_listener.rb` - リスナー基底クラス
- E-22: `app/models/user.rb` - ユーザーモデル（認証・MFA）
- E-23: `lib/chatwoot_app.rb` - ChatwootApp設定
- E-24: `app/models/channel/` - チャネル実装一覧
- E-25: `app/controllers/api/` - APIコントローラー構造
- E-26: `app/services/` - サービスクラス構造
- E-27: `app/jobs/` - ジョブクラス構造
- E-28: `app/policies/` - Punditポリシー構造
- E-29: `app/javascript/dashboard/` - フロントエンド構造
- E-30: `enterprise/` - Enterprise Edition構造

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Ruby on Rails 7.1をバックエンドに採用 | E-01 (`gem 'rails', '~> 7.1'`) | ○ |
| C-02 | Vue.js 3をフロントエンドに採用 | E-02 (`"vue": "^3.5.12"`) | ○ |
| C-03 | Ruby 3.4.4を使用 | E-01 (`ruby '3.4.4'`) | ○ |
| C-04 | PostgreSQL 16 with pgvectorを使用 | E-04, E-09 (`pgvector/pgvector:pg16`) | ○ |
| C-05 | Redisをキャッシュ/キュー/PubSubに使用 | E-05, E-09 | ○ |
| C-06 | Sidekiqをバックグラウンドジョブに使用 | E-01 (`gem 'sidekiq'`), E-06 | ○ |
| C-07 | Wisperによるイベント駆動パターン | E-01 (`gem 'wisper'`), E-20 | ○ |
| C-08 | DeviseTokenAuthによるトークン認証 | E-01, E-10, E-12 | ○ |
| C-09 | Punditによる認可 | E-01 (`gem 'pundit'`), E-10, E-28 | ○ |
| C-10 | devise-two-factorによる2FA/MFA | E-01, E-22 | ○ |
| C-11 | Rack::Attackによるレート制限 | E-01, E-13 | ○ |
| C-12 | Facebook連携（Koala gem） | E-01 (`gem 'koala'`) | ○ |
| C-13 | WhatsApp Webhook連携 | E-07 (routes), E-24 | ○ |
| C-14 | Twitter連携（Twitty gem） | E-01 (`gem 'twitty'`) | ○ |
| C-15 | Slack連携（slack-ruby-client） | E-01 (`gem 'slack-ruby-client'`) | ○ |
| C-16 | Twilio連携（twilio-ruby） | E-01 (`gem 'twilio-ruby'`) | ○ |
| C-17 | Google Dialogflow連携 | E-01 (`gem 'google-cloud-dialogflow-v2'`) | ○ |
| C-18 | OpenAI連携（ruby-openai） | E-01 (`gem 'ruby-openai'`) | ○ |
| C-19 | Stripe連携（stripe gem） | E-01 (`gem 'stripe'`) | ○ |
| C-20 | OpenSearch/searchkick検索 | E-01 (`gem 'searchkick'`, `gem 'opensearch-ruby'`), E-16 | ○ |
| C-21 | Sentryエラー監視 | E-01, E-14 | ○ |
| C-22 | Logrageロギング | E-01 (`gem 'lograge'`), E-15 | ○ |
| C-23 | Auditedによる監査ログ | E-01 (`gem 'audited'`) | ○ |
| C-24 | AWS S3/GCS/Azureストレージ対応 | E-01, E-08 | ○ |
| C-25 | prepend_mod_with/include_mod_withによる拡張 | E-03, E-10, E-19 | ○ |
| C-26 | Enterprise Edition対応 | E-03, E-23, E-30 | ○ |
| C-27 | ActionCableによるWebSocket | E-05, E-07 | ○ |
| C-28 | Sidekiqキューの優先度設定 | E-06 | ○ |
| C-29 | 同期・非同期ディスパッチャー分離 | E-18, E-19 | ○ |
| C-30 | 各種Listenerによるイベント処理 | E-19, E-21 | ○ |
| C-31 | RequestExceptionHandlerによるエラーハンドリング | E-11 | ○ |
| C-32 | API v1/v2/Platform/Public構成 | E-07, E-25 | ○ |
| C-33 | Vuexによる状態管理 | E-02 (`"vuex": "~4.1.0"`), E-29 | ○ |
| C-34 | Piniaによる状態管理 | E-02 (`"pinia": "^3.0.4"`), E-29 | ○ |
| C-35 | Tailwind CSSの使用 | E-02 (`"tailwindcss": "^3.4.13"`) | ○ |
| C-36 | Vite 5.4.xによるビルド | E-02 (`"vite": "^5.4.21"`) | ○ |
| C-37 | Node.js 24.x使用 | E-02 (`"node": "24.x"`) | ○ |
| C-38 | pnpm 10.x使用 | E-02 (`"pnpm": "10.x"`) | ○ |
| C-39 | LINE連携（line-bot-api） | E-01 (`gem 'line-bot-api'`) | ○ |
| C-40 | FCM/WebPush通知 | E-01 (`gem 'fcm'`, `gem 'web-push'`) | ○ |
| C-41 | Sidekiqキュー処理順序が優先度順 | E-06（設定からの推測） | △ |
| C-42 | OpenSearchのバージョン | **根拠なし**（明示的なバージョン指定がない） | △ |

## 4) 不足情報（Unknown / Missing）

- **C-41: Sidekiqキュー処理順序**
  - config/sidekiq.ymlにキュー一覧はあるが、実際の処理順序はSidekiqの仕様に依存
  - 候補：Sidekiq公式ドキュメント / 実運用ログ / パフォーマンステスト結果

- **C-42: OpenSearchバージョン**
  - searchkick/opensearch-ruby gemは使用しているが、具体的なOpenSearchサーバーバージョンは環境依存
  - 候補：docker-compose.yaml（本番用）/ インフラ設計書 / デプロイメントドキュメント

## 5) リスクフラグ（レビュー観点）

| リスクレベル | 項目 | 説明 |
|---|---|---|
| 0: 低リスク | 技術スタック | Gemfile/package.jsonから直接確認可能 |
| 0: 低リスク | 認証・認可 | 設定ファイルとコードから確認可能 |
| 0: 低リスク | イベント駆動設計 | ディスパッチャー/リスナーコードから確認可能 |
| 1: 中リスク | Sidekiq優先度 | 設定はあるが動作確認は運用ベース |
| 1: 中リスク | 外部サービス連携 | Gemの存在は確認できるが実装詳細は未確認 |
| 1: 中リスク | OpenSearch | バージョン/設定は環境依存 |

## 6) レビュアーチェックリスト（最小）

- [ ] PostgreSQL 16 + pgvectorの使用が本番環境でも同様か確認
- [ ] Sidekiqキューの優先度動作が期待通りか確認
- [ ] OpenSearchの本番バージョンを確認し記載
- [ ] Enterprise Edition機能の具体的な一覧が必要か検討
- [ ] 外部サービス連携の設定値（環境変数）一覧が必要か検討
- [ ] フロントエンドのVuex→Pinia移行状況を確認
- [ ] APMサービス（Datadog/NewRelic/Scout/ElasticAPM）の実際の使用状況を確認
