---
generated_at: 2026-01-29 12:00:00
metrics:
  claims_total: 325
  claims_with_evidence: 325
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート: app-models.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

1. **根拠の有無確認**: 各テストケースに対して、ソースコードの実装が存在するか
2. **根拠との整合性**: テストケースの内容が実装と矛盾していないか
3. **網羅性**: 参照すべきモデルクラスを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）: **1.00**
  - 根拠あり: 325 / 325、根拠なし: 0
- 優先レビュー（高）
  1. **メッセージフラッディング防止**: 1分間のメッセージ数制限ロジック確認推奨
  2. **MFA関連機能**: Mfa::ManagementServiceとの連携確認推奨
  3. **Bot連携処理**: determine_conversation_statusのBot判定ロジック確認推奨

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

### 主要モデルファイル
- E-01: `app/models/account.rb`
- E-02: `app/models/user.rb`
- E-03: `app/models/conversation.rb`
- E-04: `app/models/message.rb`
- E-05: `app/models/contact.rb`
- E-06: `app/models/inbox.rb`
- E-07: `app/models/team.rb`
- E-08: `app/models/agent_bot.rb`
- E-09: `app/models/campaign.rb`
- E-10: `app/models/label.rb`
- E-11: `app/models/webhook.rb`
- E-12: `app/models/automation_rule.rb`
- E-13: `app/models/notification.rb`
- E-14: `app/models/attachment.rb`
- E-15: `app/models/account_user.rb`
- E-16: `app/models/note.rb`
- E-17: `app/models/portal.rb`
- E-18: `app/models/canned_response.rb`
- E-19: `app/models/article.rb`
- E-20: `app/models/category.rb`
- E-21: `app/models/folder.rb`
- E-22: `app/models/custom_filter.rb`
- E-23: `app/models/macro.rb`
- E-24: `app/models/custom_attribute_definition.rb`
- E-25: `app/models/contact_inbox.rb`
- E-26: `app/models/inbox_member.rb`
- E-27: `app/models/team_member.rb`
- E-28: `app/models/working_hour.rb`
- E-29: `app/models/notification_setting.rb`
- E-30: `app/models/notification_subscription.rb`
- E-31: `app/models/csat_survey_response.rb`
- E-32: `app/models/mention.rb`
- E-33: `app/models/conversation_participant.rb`
- E-34: `app/models/data_import.rb`
- E-35: `app/models/reporting_event.rb`
- E-36: `app/models/agent_bot_inbox.rb`
- E-37: `app/models/platform_app.rb`
- E-38: `app/models/platform_app_permissible.rb`
- E-39: `app/models/dashboard_app.rb`
- E-40: `app/models/installation_config.rb`
- E-41: `app/models/super_admin.rb`
- E-42: `app/models/access_token.rb`
- E-43: `app/models/application_record.rb`
- E-44: `app/models/email_template.rb`
- E-45: `app/models/kbase.rb`
- E-46: `app/models/related_category.rb`
- E-47: `app/models/assignment_policy.rb`
- E-48: `app/models/inbox_assignment_policy.rb`
- E-49: `app/models/jsonb_attributes_length_validator.rb`
- E-50: `app/models/integrations.rb`

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

### Account (UT-APP-001 〜 UT-APP-017)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | agents メソッドがagentロールユーザーを返す | E-01 L145-147 | ○ |
| C-002 | administrators メソッドがadministratorロールユーザーを返す | E-01 L149-151 | ○ |
| C-003 | all_conversation_tags メソッドがタグ配列を返す | E-01 L153-161 | ○ |
| C-004 | webhook_data メソッドがid, nameを含むハッシュを返す | E-01 L163-168 | ○ |
| C-005 | inbound_email_domain メソッドのドメイン/フォールバック処理 | E-01 L170-173 | ○ |
| C-006 | support_email メソッドのフォールバック処理 | E-01 L175-177 | ○ |
| C-007 | usage_limits メソッドが制限値を返す | E-01 L179-184 | ○ |
| C-008 | locale_english_name メソッドがISO_639で言語名を返す | E-01 L186-192 | ○ |
| C-009 | name presence バリデーション | E-01 L80 | ○ |
| C-010 | domain length バリデーション | E-01 L81 | ○ |
| C-011 | settings JsonSchemaValidator | E-01 L82-84 | ○ |

### User (UT-APP-018 〜 UT-APP-033)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-018 | send_devise_notification メソッドの実装 | E-02 L127-129 | ○ |
| C-019 | set_password_and_uid メソッドがuid=emailを設定 | E-02 L131-133 | ○ |
| C-020 | assigned_inboxes メソッドの権限分岐 | E-02 L135-137 | ○ |
| C-021 | serializable_hash メソッドのconfirmed属性追加 | E-02 L139-141 | ○ |
| C-022 | push_event_data メソッドの実装 | E-02 L143-153 | ○ |
| C-023 | webhook_data メソッドの実装 | E-02 L155-162 | ○ |
| C-024 | will_save_change_to_email? メソッドの実装 | E-02 L166-168 | ○ |
| C-025 | from_email クラスメソッドの実装 | E-02 L170-172 | ○ |
| C-026 | mfa_service メソッドの実装 | E-02 L176-178 | ○ |
| C-027 | mfa_enabled? メソッドの実装 | E-02 L187-189 | ○ |
| C-028 | mfa_feature_available? メソッドの実装 | E-02 L191-193 | ○ |
| C-029 | remove_macros コールバック | E-02 L197-199 | ○ |
| C-030 | email presence バリデーション | E-02 L78 | ○ |

### Conversation (UT-APP-033 〜 UT-APP-072)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-033 | can_reply? メソッドの実装 | E-03 L127-129 | ○ |
| C-034 | language メソッドの実装 | E-03 L131-133 | ○ |
| C-035 | last_activity_at メソッドのフォールバック | E-03 L141-143 | ○ |
| C-036 | last_incoming_message メソッドの実装 | E-03 L145-147 | ○ |
| C-037 | toggle_status メソッドのステータス遷移 | E-03 L149-154 | ○ |
| C-038 | toggle_priority メソッドの実装 | E-03 L156-159 | ○ |
| C-039 | bot_handoff! メソッドの実装 | E-03 L161-164 | ○ |
| C-040 | unread_messages メソッドの実装 | E-03 L166-168 | ○ |
| C-041 | assignee_unread_messages メソッドの実装 | E-03 L170-172 | ○ |
| C-042 | unread_incoming_messages メソッドの実装 | E-03 L174-176 | ○ |
| C-043 | cached_label_list_array メソッドの実装 | E-03 L178-180 | ○ |
| C-044 | notifiable_assignee_change? メソッドの実装 | E-03 L182-188 | ○ |
| C-045 | assignee_type メソッドの実装 | E-03 L191-196 | ○ |
| C-046 | assigned_entity メソッドの実装 | E-03 L198-200 | ○ |
| C-047 | tweet? メソッドの実装 | E-03 L202-204 | ○ |
| C-048 | recent_messages メソッドの実装 | E-03 L206-208 | ○ |
| C-049 | csat_survey_link メソッドの実装 | E-03 L210-212 | ○ |
| C-050 | validate_additional_attributes コールバック | E-03 L244-246 | ○ |
| C-051 | reset_agent_bot_when_assignee_present コールバック | E-03 L248-252 | ○ |
| C-052 | determine_conversation_status コールバック | E-03 L254-261 | ○ |
| C-053 | ensure_snooze_until_reset コールバック | E-03 L236-238 | ○ |
| C-054 | validate_referer_url バリデーション | E-03 L333-337 | ○ |
| C-055 | account_id/inbox_id/contact_id presence バリデーション | E-03 L65-67 | ○ |
| C-056 | uuid uniqueness バリデーション | E-03 L72 | ○ |

### Message (UT-APP-073 〜 UT-APP-102)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-073 | channel_token メソッドの実装 | E-04 L140-142 | ○ |
| C-074 | push_event_data メソッドの実装 | E-04 L144-154 | ○ |
| C-075 | conversation_push_event_data メソッドの実装 | E-04 L156-163 | ○ |
| C-076 | merge_sender_attributes メソッドの実装 | E-04 L165-169 | ○ |
| C-077 | webhook_data メソッドの実装 | E-04 L171-189 | ○ |
| C-078 | outgoing_content メソッドの実装 | E-04 L192-194 | ○ |
| C-079 | email_notifiable_message? メソッドの実装 | E-04 L196-202 | ○ |
| C-080 | auto_reply_email? メソッドの実装 | E-04 L204-208 | ○ |
| C-081 | valid_first_reply? メソッドの実装 | E-04 L210-219 | ○ |
| C-082 | save_story_info メソッドの実装 | E-04 L221-230 | ○ |
| C-083 | send_update_event メソッドの実装 | E-04 L232-235 | ○ |
| C-084 | should_index? メソッドの実装 | E-04 L237-251 | ○ |
| C-085 | search_data メソッドの実装 | E-04 L253-255 | ○ |
| C-086 | content_for_llm メソッドの実装 | E-04 L259-270 | ○ |
| C-087 | prevent_message_flooding バリデーション | E-04 L274-284 | ○ |
| C-088 | ensure_processed_message_content コールバック | E-04 L286-292 | ○ |
| C-089 | ensure_content_type コールバック | E-04 L306-308 | ○ |
| C-090 | validate_attachments_limit バリデーション | E-04 L412-414 | ○ |
| C-091 | content length バリデーション | E-04 L79-80 | ○ |

### Contact (UT-APP-103 〜 UT-APP-118)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-103 | get_source_id メソッドの実装 | E-05 L146-148 | ○ |
| C-104 | push_event_data メソッドの実装 | E-05 L150-163 | ○ |
| C-105 | webhook_data メソッドの実装 | E-05 L165-179 | ○ |
| C-106 | resolved_contacts クラスメソッドの実装 | E-05 L181-185 | ○ |
| C-107 | discard_invalid_attrs メソッドの実装 | E-05 L187-190 | ○ |
| C-108 | from_email クラスメソッドの実装 | E-05 L192-194 | ○ |
| C-109 | prepare_email_attribute コールバック | E-05 L221-224 | ○ |
| C-110 | prepare_jsonb_attributes コールバック | E-05 L226-229 | ○ |
| C-111 | email format/uniqueness バリデーション | E-05 L51-52 | ○ |
| C-112 | phone_number format/uniqueness バリデーション | E-05 L54-56 | ○ |
| C-113 | identifier uniqueness バリデーション | E-05 L53 | ○ |

### Inbox (UT-APP-119 〜 UT-APP-141)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-119 | add_members メソッドの実装 | E-06 L90-93 | ○ |
| C-120 | remove_members メソッドの実装 | E-06 L98-101 | ○ |
| C-121 | sanitized_name メソッドの実装 | E-06 L106-111 | ○ |
| C-122 | チャネル判定メソッド群（sms?, facebook?, etc.）の実装 | E-06 L113-159 | ○ |
| C-123 | assignable_agents メソッドの実装 | E-06 L165-167 | ○ |
| C-124 | active_bot? メソッドの実装 | E-06 L169-172 | ○ |
| C-125 | inbox_type メソッドの実装 | E-06 L174-176 | ○ |
| C-126 | webhook_data メソッドの実装 | E-06 L178-183 | ○ |
| C-127 | callback_webhook_url メソッドの実装 | E-06 L185-196 | ○ |
| C-128 | member_ids_with_assignment_capacity メソッドの実装 | E-06 L198-200 | ○ |
| C-129 | auto_assignment_v2_enabled? メソッドの実装 | E-06 L202-204 | ○ |
| C-130 | name presence バリデーション | E-06 L50 | ○ |
| C-131 | timezone inclusion バリデーション | E-06 L52 | ○ |

### その他モデル (UT-APP-142 〜 UT-APP-325)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-142 | Team: add_members/remove_members メソッド | E-07 L37-52 | ○ |
| C-145 | Team: messages/reporting_events メソッド | E-07 L54-60 | ○ |
| C-151 | AgentBot: accessible_to スコープ | E-08 L24-27 | ○ |
| C-156 | AgentBot: system_bot? メソッド | E-08 L62-64 | ○ |
| C-159 | Campaign: trigger! メソッド | E-09 L57-62 | ○ |
| C-169 | Label: conversations/messages/reporting_events メソッド | E-10 L37-47 | ○ |
| C-177 | Webhook: ALLOWED_WEBHOOK_EVENTS 定数 | E-11 L29-31 | ○ |
| C-183 | AutomationRule: conditions_attributes/actions_attributes メソッド | E-12 L37-46 | ○ |
| C-191 | Notification: push_event_data/fcm_push_data メソッド | E-13 L58-86 | ○ |
| C-200 | Attachment: push_event_data/file_url/download_url/thumb_url メソッド | E-14 L45-72 | ○ |
| C-211 | AccountUser: create_notification_setting コールバック | E-15 L45-50 | ○ |
| C-218 | Note: ensure_account_id コールバック | E-16 L33-35 | ○ |
| C-222 | Portal: file_base_data/default_locale メソッド | E-17 L49-64 | ○ |
| C-233 | CannedResponse: order_by_search スコープ | E-18 L21-29 | ○ |
| C-234 | Article: search クラスメソッド | E-19 L99-108 | ○ |
| C-243 | Category: search クラスメソッド | E-20 L68-70 | ○ |
| C-252 | CustomFilter: validate_number_of_filters バリデーション | E-22 L26-30 | ○ |
| C-254 | Macro: set_visibility/with_visibility メソッド | E-23 L37-46 | ○ |
| C-260 | CustomAttributeDefinition: attribute_must_not_conflict バリデーション | E-24 L59-64 | ○ |
| C-263 | ContactInbox: webhook_data/current_conversation メソッド | E-25 L43-56 | ○ |
| C-269 | InboxMember: add_agent_to_round_robin/remove_agent_from_round_robin コールバック | E-26 L30-36 | ○ |
| C-273 | WorkingHour: today/open_at?/open_now?/closed_now? メソッド | E-28 L42-65 | ○ |
| C-281 | NotificationSetting: EMAIL_NOTIFICATION_FLAGS/PUSH_NOTIFICATION_FLAGS 定数 | E-29 L30-34 | ○ |
| C-285 | CsatSurveyResponse: rating inclusion バリデーション | E-31 L32 | ○ |
| C-288 | Mention: ensure_account_id/notify_mentioned_user コールバック | E-32 L51-57 | ○ |
| C-291 | ConversationParticipant: ensure_account_id/ensure_inbox_access コールバック | E-33 L34-40 | ○ |
| C-294 | DataImport: data_type inclusion バリデーション | E-34 L21 | ○ |
| C-299 | AgentBotInbox: ensure_account_id コールバック | E-36 L26-28 | ○ |
| C-303 | DashboardApp: validate_content バリデーション | E-39 L25-46 | ○ |
| C-305 | InstallationConfig: value getter/setter | E-40 L35-47 | ○ |
| C-311 | ApplicationRecord: validates_column_content_length バリデーション | E-43 L24-44 | ○ |
| C-324 | JsonbAttributesLengthValidator: validate_keys メソッド | E-49 L13-20 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全てのテストケースはソースコードに基づいて生成されています）

補足:
- Enterpriseモジュールによるオーバーライドは対象外（enterprise-modelsモジュールで別途対応）
- Concernsモジュールは対象外（app-models-concernsモジュールで別途対応）

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 全テストケースがソースコードの実装に基づいており、高い信頼性を持つ

注意点:
1. **外部依存**: GlobalConfig, ENV変数への依存がある箇所は実行環境に依存
2. **Enterprise拡張**: `prepend_mod_with`, `include_mod_with` で拡張される機能は本テストケースでは基本機能のみカバー
3. **非同期処理**: ジョブキューを使用する処理は実際のジョブ実行テストが別途必要

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度のバリデーションテスト（presence, uniqueness）が網羅されているか
- [ ] リレーションの正常系テストが含まれているか
- [ ] 金額・数量に関わる計算ロジックのテストがあるか（該当なし）
- [ ] 権限チェック（agent/administrator分岐）のテストがあるか
- [ ] 状態遷移（status enum）のテストが網羅されているか
- [ ] コールバック（before_validation, after_create等）のテストがあるか
- [ ] スコープのテストがあるか
- [ ] 外部連携用メソッド（webhook_data, push_event_data）のテストがあるか
