---
generated_at: 2026-02-25 02:37:00
metrics:
  claims_total: 45
  claims_with_evidence: 43
  claims_without_evidence: 2
confidence_derived: 0.96
---

# 根拠レポート：アーキテクチャ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：43 / 45、根拠なし：2
- 優先レビュー（高）
  1. **トランザクション分離レベル**：デフォルト設定の確認が必要
  2. **レプリカ遅延設定**：multi_db.rbの設定値（0秒）の意図確認

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

- E-01: `Gemfile` - 依存関係定義
- E-02: `config/application.rb` - アプリケーション設定
- E-03: `config/routes.rb` - ルーティング定義
- E-04: `config/database.yml` - データベース設定
- E-05: `config/database.sqlite.yml` - SQLite設定
- E-06: `config/database.mysql.yml` - MySQL設定
- E-07: `config/cable.yml` - Action Cable設定
- E-08: `config/cache.yml` - キャッシュ設定
- E-09: `config/queue.yml` - キュー設定
- E-10: `config/recurring.yml` - 定期実行ジョブ設定
- E-11: `config/storage.oss.yml` - ストレージ設定
- E-12: `config/initializers/content_security_policy.rb` - CSP設定
- E-13: `config/initializers/multi_db.rb` - マルチDB設定
- E-14: `config/initializers/multi_tenant.rb` - マルチテナント設定
- E-15: `lib/fizzy.rb` - アプリケーションモジュール
- E-16: `app/controllers/application_controller.rb` - ベースコントローラー
- E-17: `app/controllers/concerns/authentication.rb` - 認証処理
- E-18: `app/controllers/concerns/authorization.rb` - 認可処理
- E-19: `app/models/application_record.rb` - ベースモデル
- E-20: `app/models/current.rb` - リクエストスコープ状態
- E-21: `app/models/account.rb` - アカウントモデル
- E-22: `app/models/user.rb` - ユーザーモデル
- E-23: `app/models/identity.rb` - アイデンティティモデル
- E-24: `app/models/session.rb` - セッションモデル
- E-25: `app/models/board.rb` - ボードモデル
- E-26: `app/models/card.rb` - カードモデル
- E-27: `app/models/event.rb` - イベントモデル
- E-28: `app/models/notification.rb` - 通知モデル
- E-29: `app/models/webhook.rb` - Webhookモデル
- E-30: `app/jobs/application_job.rb` - ベースジョブ
- E-31: `db/schema.rb` - データベーススキーマ

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Ruby on Rails 8.1ベース | E-02 (config.load_defaults 8.1) | ○ |
| C-02 | マルチテナント対応 | E-14, E-21 (Account::MultiTenantable) | ○ |
| C-03 | SQLite3サポート | E-01 (sqlite3 >= 2.0), E-05 | ○ |
| C-04 | MySQL (Trilogy)サポート | E-01 (trilogy ~2.10), E-06 | ○ |
| C-05 | Solid Queue使用 | E-01 (solid_queue ~1.3), E-09 | ○ |
| C-06 | Solid Cable使用 | E-01 (solid_cable >= 3.0), E-07 | ○ |
| C-07 | Solid Cache使用 | E-01 (solid_cache ~1.0), E-08 | ○ |
| C-08 | Slack Webhook連携 | E-29 (SLACK_WEBHOOK_URL_REGEX) | ○ |
| C-09 | Campfire Webhook連携 | E-29 (CAMPFIRE_WEBHOOK_URL_REGEX) | ○ |
| C-10 | Basecamp Webhook連携 | E-29 (BASECAMP_CAMPFIRE_WEBHOOK_URL_REGEX) | ○ |
| C-11 | S3互換ストレージ対応 | E-01 (aws-sdk-s3), E-11 | ○ |
| C-12 | Web Push対応 | E-01 (web-push) | ○ |
| C-13 | Rails MVC + Concerns アーキテクチャ | E-16, E-19, app/controllers/concerns/, app/models/concerns/ | ○ |
| C-14 | Current Attributesパターン | E-20 (Current < ActiveSupport::CurrentAttributes) | ○ |
| C-15 | Presentation層の構成 | E-16 (include Authentication, Authorization等) | ○ |
| C-16 | ジョブキュー構成（default, backend, webhooks） | E-09 (queues: [default, solid_queue_recurring, backend, webhooks, *]) | ○ |
| C-17 | UUID主キー | E-02 (primary_key_type: :uuid), E-31 | ○ |
| C-18 | マルチデータベース構成 | E-05, E-06 (primary, cable, cache, queue) | ○ |
| C-19 | キャッシュTTL 60日 | E-08 (max_age: 60.days.to_i) | ○ |
| C-20 | セッション認証 | E-17 (resume_session, find_session_by_cookie) | ○ |
| C-21 | Magic Link認証 | E-17 (Authentication::ViaMagicLink), E-23 (send_magic_link) | ○ |
| C-22 | Bearer Token認証 | E-17 (authenticate_by_bearer_token) | ○ |
| C-23 | Account/User権限モデル | E-18, E-22 (User::Role) | ○ |
| C-24 | Puma使用 | E-01 (puma >= 5.0) | ○ |
| C-25 | Thruster使用 | E-01 (thruster) | ○ |
| C-26 | Mission Control Jobs | E-01 (mission_control-jobs), E-03 | ○ |
| C-27 | 定期ジョブ: deliver_bundled_notifications（30分ごと） | E-10 (schedule: every 30 minutes) | ○ |
| C-28 | 定期ジョブ: auto_postpone_all_due（毎時50分） | E-10 (schedule: every hour at minute 50) | ○ |
| C-29 | 定期ジョブ: delete_unused_tags（毎日4:02） | E-10 (schedule: every day at 04:02) | ○ |
| C-30 | 定期ジョブ: cleanup_webhook_deliveries（15分ごと） | E-10 (schedule: every 15 minutes) | ○ |
| C-31 | 定期ジョブ: cleanup_magic_links（4時間ごと） | E-10 (schedule: every 4 hours) | ○ |
| C-32 | rubocop-rails-omakase準拠 | E-01 (rubocop-rails-omakase) | ○ |
| C-33 | Hotwire (Turbo + Stimulus) | E-01 (turbo-rails, stimulus-rails) | ○ |
| C-34 | Importmap使用 | E-01 (importmap-rails) | ○ |
| C-35 | Propshaft使用 | E-01 (propshaft) | ○ |
| C-36 | Event追跡（監査ログ） | E-27 (after_create_commit :dispatch_webhooks) | ○ |
| C-37 | Notification ブロードキャスト | E-28 (broadcast_prepend_later_to) | ○ |
| C-38 | CSP設定 | E-12 (content_security_policy) | ○ |
| C-39 | Fizzy.saas?によるモード切替 | E-15 (def saas?) | ○ |
| C-40 | OSS版とSaaS版のDB切替 | E-04, E-15 (db_adapter) | ○ |
| C-41 | Account belongsモデル構造 | E-21, E-22, E-25, E-26 (belongs_to :account) | ○ |
| C-42 | Card多機能Concerns | E-26 (include Accessible, Assignable, Attachments等) | ○ |
| C-43 | ポーリング間隔0.1秒 | E-09 (polling_interval: 0.1) | ○ |
| C-44 | トランザクション分離レベル READ COMMITTED | **根拠なし** | △ |
| C-45 | レプリカ遅延0秒設定の意図 | E-13 (delay: 0.seconds) | △ |

## 4) 不足情報（Unknown / Missing）
- **C-44 トランザクション分離レベル**：デフォルトの分離レベルについて明示的な設定ファイルが確認できず。Rails/MySQL/SQLiteのデフォルト値を想定して記載。
  - 候補：config/database.yml / MySQL server設定 / SQLite PRAGMA設定
- **C-45 レプリカ遅延設定**：`multi_db.rb`で`delay: 0.seconds`と設定されているが、その意図（即座にレプリカ切り替え）が正しいか要確認。
  - 候補：本番運用ドキュメント / パフォーマンス要件書

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - フレームワーク・gem依存関係（Gemfile, config/application.rb）
- **0: 低リスク** - 認証・認可の実装（concerns/authentication.rb, authorization.rb）
- **0: 低リスク** - データベース構成（database.yml系）
- **1: 中リスク** - マルチテナント実装の詳細（データ分離の網羅性確認が必要）
- **1: 中リスク** - トランザクション管理（分離レベルの確認が必要）
- **0: 低リスク** - 非同期処理（Solid Queue設定）

## 6) レビュアーチェックリスト（最小）
- [ ] Gemfileの依存関係バージョンが最新のセキュリティ要件を満たしているか
- [ ] マルチテナントのデータ分離が全テーブルで適切に実装されているか
- [ ] 認証・認可のセキュリティ実装に脆弱性がないか
- [ ] トランザクション分離レベルがビジネス要件を満たしているか
- [ ] 定期実行ジョブのスケジュールが本番環境で適切か
- [ ] キャッシュTTL（60日）がビジネス要件に合致しているか
- [ ] Webhook連携のエラーハンドリングが適切か
