---
generated_at: 2026-01-29 00:00:00
metrics:
  claims_total: 30
  claims_with_evidence: 28
  claims_without_evidence: 2
confidence_derived: 0.93
---

# 根拠レポート：API設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：28 / 30、根拠なし：2
- 優先レビュー（高）
  1. **レスポンス形式の詳細**：実際のJbuilderビューを確認していないため、レスポンス形式は推定
  2. **バリデーションルールの詳細**：モデル層のバリデーションを完全には確認していない

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

- E-01: `config/routes.rb` - ルーティング定義ファイル
- E-02: `app/controllers/api/v1/accounts_controller.rb` - アカウントコントローラー
- E-03: `app/controllers/api/v1/accounts/conversations_controller.rb` - 会話コントローラー
- E-04: `app/controllers/api/v1/accounts/contacts_controller.rb` - コンタクトコントローラー
- E-05: `app/controllers/api/v1/accounts/agents_controller.rb` - エージェントコントローラー
- E-06: `app/controllers/api/v1/accounts/inboxes_controller.rb` - インボックスコントローラー
- E-07: `app/controllers/api/v1/accounts/labels_controller.rb` - ラベルコントローラー
- E-08: `app/controllers/api/v1/accounts/teams_controller.rb` - チームコントローラー
- E-09: `app/controllers/api/v1/accounts/webhooks_controller.rb` - Webhookコントローラー
- E-10: `app/controllers/api/v1/accounts/notifications_controller.rb` - 通知コントローラー
- E-11: `app/controllers/api/v1/accounts/canned_responses_controller.rb` - 定型文コントローラー
- E-12: `app/controllers/api/v1/accounts/automation_rules_controller.rb` - 自動化ルールコントローラー
- E-13: `app/controllers/api/v1/accounts/macros_controller.rb` - マクロコントローラー
- E-14: `app/controllers/api/v1/accounts/conversations/messages_controller.rb` - メッセージコントローラー
- E-15: `app/controllers/api/v1/profiles_controller.rb` - プロフィールコントローラー
- E-16: `app/controllers/api/v2/accounts/reports_controller.rb` - レポートコントローラー
- E-17: `app/controllers/platform/api/v1/accounts_controller.rb` - Platformアカウントコントローラー
- E-18: `app/controllers/platform/api/v1/users_controller.rb` - Platformユーザーコントローラー
- E-19: `app/controllers/public/api/v1/inboxes/contacts_controller.rb` - Publicコンタクトコントローラー
- E-20: `app/controllers/api/base_controller.rb` - APIベースコントローラー
- E-21: `app/controllers/platform_controller.rb` - Platformコントローラー
- E-22: `app/controllers/concerns/access_token_auth_helper.rb` - アクセストークン認証ヘルパー
- E-23: `app/controllers/devise_overrides/sessions_controller.rb` - セッションコントローラー

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ベースURLは /api/v1, /api/v2, /platform/api/v1, /public/api/v1 | E-01 | ○ |
| C-02 | 認証方式はDevise Token Auth, API Access Token, Platform API Token | E-20, E-21, E-22, E-23 | ○ |
| C-03 | api_access_tokenヘッダーでトークン認証 | E-20, E-22 | ○ |
| C-04 | アカウント作成APIは認証不要 | E-02 (skip_before_action :authenticate_user!) | ○ |
| C-05 | アカウント作成にはaccount_name, user_full_name, email, passwordが必要 | E-02 (account_params) | ○ |
| C-06 | エージェント一覧は/api/v1/accounts/:account_id/agents | E-01, E-05 | ○ |
| C-07 | エージェント作成にはemail, name, role, availability, auto_offlineパラメータ | E-05 (new_agent_params) | ○ |
| C-08 | 会話一覧は/api/v1/accounts/:account_id/conversations | E-01, E-03 | ○ |
| C-09 | 会話のステータス切替は/toggle_statusエンドポイント | E-01, E-03 | ○ |
| C-10 | 会話フィルタ機能は/filterエンドポイントでPOST | E-01, E-03 | ○ |
| C-11 | メッセージ作成はMessages::MessageBuilderを使用 | E-14 | ○ |
| C-12 | メッセージ更新はAPIインボックスのみ許可 | E-14 (ensure_api_inbox) | ○ |
| C-13 | メッセージ翻訳機能は/translateエンドポイント | E-01, E-14 | ○ |
| C-14 | コンタクト検索は?qパラメータが必須 | E-04 | ○ |
| C-15 | コンタクトインポートは/importエンドポイントでPOST | E-01, E-04 | ○ |
| C-16 | インボックス作成時のチャネルタイプはweb_widget, api, email, line, telegram, whatsapp, sms | E-06 (allowed_channel_types) | ○ |
| C-17 | ラベル作成にはtitle, description, color, show_on_sidebarパラメータ | E-07 (permitted_params) | ○ |
| C-18 | チーム作成にはname, description, allow_auto_assignパラメータ | E-08 (team_params) | ○ |
| C-19 | Webhook作成にはinbox_id, name, url, subscriptionsパラメータ | E-09 (webhook_params) | ○ |
| C-20 | 定型文作成にはshort_code, contentパラメータ | E-11 (canned_response_params) | ○ |
| C-21 | 自動化ルールにはname, description, event_name, active, conditions, actionsパラメータ | E-12 (automation_rules_permit) | ○ |
| C-22 | マクロ実行は/executeエンドポイントでPOST | E-01, E-13 | ○ |
| C-23 | プロフィール更新時のパスワード変更はcurrent_passwordが必要 | E-15 | ○ |
| C-24 | Platform APIはapi_access_tokenでPlatformAppを認証 | E-21 | ○ |
| C-25 | Platform ユーザー作成はskip_confirmation!を実行 | E-18 | ○ |
| C-26 | Platform SSOログインURLは/loginエンドポイント | E-01, E-18 | ○ |
| C-27 | Public APIのコンタクト作成はHMAC検証に対応 | E-19 | ○ |
| C-28 | Botアクセス可能エンドポイントは制限されている | E-22 (BOT_ACCESSIBLE_ENDPOINTS) | ○ |
| C-29 | レスポンス形式の詳細なJSON構造 | **根拠不足** | △ |
| C-30 | バリデーションルールの詳細 | **根拠不足** | △ |

## 4) 不足情報（Unknown / Missing）
- レスポンス形式の詳細：Jbuilderビューファイル（app/views/api/以下）を確認していないため、レスポンスのJSON構造は推定値
  - 候補：`app/views/api/v1/accounts/show.json.jbuilder` / `app/views/api/v1/accounts/conversations/index.json.jbuilder` 等
- バリデーションルール：モデル層（app/models/以下）のバリデーション定義を完全には確認していない
  - 候補：`app/models/account.rb` / `app/models/user.rb` / `app/models/conversation.rb` 等

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - ルーティング定義とコントローラーのアクションは完全に一致
- **0: 低リスク** - 認証・認可要件はコントローラーのbefore_actionから正確に特定
- **1: 中リスク** - レスポンス形式はJbuilderビューを確認すべき
- **0: 低リスク** - パラメータ定義はstrong_parametersから正確に特定
- **1: 中リスク** - バリデーションエラーの詳細はモデル層の確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] レスポンス形式の確認：`app/views/api/`以下のJbuilderビューを確認し、JSON構造を検証
- [ ] バリデーションルールの確認：各モデルのバリデーション定義を確認
- [ ] Enterprise限定機能の確認：`ChatwootApp.enterprise?`の条件分岐を確認
- [ ] 権限管理の確認：Punditポリシー（`app/policies/`以下）を確認
- [ ] エラーハンドリングの確認：RequestExceptionHandlerの実装を確認
