---
generated_at: 2026-02-25 02:15:00
metrics:
  claims_total: 53
  claims_with_evidence: 51
  claims_without_evidence: 2
confidence_derived: 0.96
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：51 / 53、根拠なし：2
- 優先レビュー（高）
  1. **Webhook購読可能なアクション一覧**：具体的なアクション名がコードから明確に特定できない
  2. **レスポンスJSONのフィールド詳細**：Viewテンプレート/Jbuilderの詳細分析が不足

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

- E-01: `config/routes.rb` - ルーティング定義
- E-02: `app/controllers/application_controller.rb` - ベースコントローラー
- E-03: `app/controllers/concerns/authentication.rb` - 認証ロジック
- E-04: `app/controllers/concerns/authorization.rb` - 認可ロジック
- E-05: `app/controllers/boards_controller.rb` - ボードコントローラー
- E-06: `app/controllers/cards_controller.rb` - カードコントローラー
- E-07: `app/controllers/cards/comments_controller.rb` - コメントコントローラー
- E-08: `app/controllers/cards/reactions_controller.rb` - リアクションコントローラー
- E-09: `app/controllers/cards/assignments_controller.rb` - アサインコントローラー
- E-10: `app/controllers/cards/taggings_controller.rb` - タグ付けコントローラー
- E-11: `app/controllers/cards/steps_controller.rb` - ステップコントローラー
- E-12: `app/controllers/cards/closures_controller.rb` - クローズコントローラー
- E-13: `app/controllers/cards/pins_controller.rb` - ピンコントローラー
- E-14: `app/controllers/cards/watches_controller.rb` - ウォッチコントローラー
- E-15: `app/controllers/notifications_controller.rb` - 通知コントローラー
- E-16: `app/controllers/notifications/readings_controller.rb` - 通知既読コントローラー
- E-17: `app/controllers/notifications/bulk_readings_controller.rb` - 一括既読コントローラー
- E-18: `app/controllers/users_controller.rb` - ユーザーコントローラー
- E-19: `app/controllers/sessions_controller.rb` - セッションコントローラー
- E-20: `app/controllers/sessions/magic_links_controller.rb` - Magic Linkコントローラー
- E-21: `app/controllers/signups_controller.rb` - サインアップコントローラー
- E-22: `app/controllers/tags_controller.rb` - タグコントローラー
- E-23: `app/controllers/searches_controller.rb` - 検索コントローラー
- E-24: `app/controllers/filters_controller.rb` - フィルターコントローラー
- E-25: `app/controllers/webhooks_controller.rb` - Webhookコントローラー
- E-26: `app/controllers/boards/columns_controller.rb` - カラムコントローラー
- E-27: `app/controllers/my/access_tokens_controller.rb` - アクセストークンコントローラー
- E-28: `app/models/identity/access_token.rb` - アクセストークンモデル
- E-29: `app/models/card.rb` - カードモデル
- E-30: `app/models/board.rb` - ボードモデル
- E-31: `app/models/user.rb` - ユーザーモデル
- E-32: `app/models/comment.rb` - コメントモデル
- E-33: `app/models/notification.rb` - 通知モデル
- E-34: `app/models/filter.rb` - フィルターモデル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | セッション認証はCookieベースで動作 | E-03 | ○ |
| C-02 | Bearer Token認証がサポートされる | E-03 (authenticate_by_bearer_token) | ○ |
| C-03 | アクセストークンはread/write権限を持つ | E-28 (enum :permission) | ○ |
| C-04 | POST /session でログイン開始 | E-01, E-19 | ○ |
| C-05 | レート制限 10回/3分 (session) | E-19 (rate_limit to: 10, within: 3.minutes) | ○ |
| C-06 | DELETE /session でログアウト | E-01, E-19 | ○ |
| C-07 | POST /session/magic_link でコード検証 | E-01, E-20 | ○ |
| C-08 | レート制限 10回/15分 (magic_link) | E-20 (rate_limit to: 10, within: 15.minutes) | ○ |
| C-09 | POST /signup でサインアップ | E-01, E-21 | ○ |
| C-10 | レート制限 10回/3分 (signup) | E-21 (rate_limit to: 10, within: 3.minutes) | ○ |
| C-11 | GET /boards でボード一覧取得 | E-01, E-05 | ○ |
| C-12 | POST /boards でボード作成 | E-01, E-05 | ○ |
| C-13 | ボード作成時にall_accessデフォルトtrue | E-05 (board_params.with_defaults(all_access: true)) | ○ |
| C-14 | PATCH/PUT /boards/:id でボード更新 | E-01, E-05 | ○ |
| C-15 | ボード更新には管理権限が必要 | E-05 (ensure_permission_to_admin_board) | ○ |
| C-16 | DELETE /boards/:id でボード削除 | E-01, E-05 | ○ |
| C-17 | GET /boards/:board_id/columns でカラム一覧 | E-01, E-26 | ○ |
| C-18 | POST /boards/:board_id/columns でカラム作成 | E-01, E-26 | ○ |
| C-19 | カラムはname, colorを持つ | E-26 (column_params: :name, :color) | ○ |
| C-20 | GET /cards でカード一覧取得 | E-01, E-06 | ○ |
| C-21 | POST /boards/:board_id/cards でカード作成 | E-01, E-06 | ○ |
| C-22 | カードはtitle, description, image, created_at, last_active_atを持つ | E-06 (card_params), E-29 | ○ |
| C-23 | カードはnumberで識別される | E-06 (find_by!(number: params[:id])), E-29 | ○ |
| C-24 | DELETE /cards/:id にはカード管理権限が必要 | E-06 (ensure_permission_to_administer_card) | ○ |
| C-25 | POST /cards/:card_id/closure でカードクローズ | E-01, E-12 | ○ |
| C-26 | DELETE /cards/:card_id/closure でカード再オープン | E-01, E-12 | ○ |
| C-27 | POST /cards/:card_id/pin でピン留め | E-01, E-13 | ○ |
| C-28 | DELETE /cards/:card_id/pin でピン解除 | E-01, E-13 | ○ |
| C-29 | POST /cards/:card_id/watch でウォッチ | E-01, E-14 | ○ |
| C-30 | DELETE /cards/:card_id/watch でウォッチ解除 | E-01, E-14 | ○ |
| C-31 | GET /cards/:card_id/comments でコメント一覧 | E-01, E-07 | ○ |
| C-32 | POST /cards/:card_id/comments でコメント作成 | E-01, E-07 | ○ |
| C-33 | コメントはbody, created_atを持つ | E-07 (comment_params), E-32 | ○ |
| C-34 | コメント更新・削除は作成者のみ | E-07 (ensure_creatorship) | ○ |
| C-35 | コメント作成にはカードがコメント可能である必要 | E-07 (ensure_card_is_commentable) | ○ |
| C-36 | POST /cards/:card_id/reactions でリアクション追加 | E-01, E-08 | ○ |
| C-37 | リアクション削除は作成者のみ | E-08 (ensure_permission_to_administer_reaction) | ○ |
| C-38 | POST /cards/:card_id/assignments でアサイン | E-01, E-09 | ○ |
| C-39 | アサインはトグル動作 | E-09 (toggle_assignment) | ○ |
| C-40 | POST /cards/:card_id/taggings でタグ追加/削除 | E-01, E-10 | ○ |
| C-41 | タグはトグル動作 | E-10 (toggle_tag_with) | ○ |
| C-42 | POST /cards/:card_id/steps でステップ作成 | E-01, E-11 | ○ |
| C-43 | ステップはcontent, completedを持つ | E-11 (step_params) | ○ |
| C-44 | GET /notifications で通知一覧取得 | E-01, E-15 | ○ |
| C-45 | API経由の未読通知は最大100件 | E-15 (MAX_UNREAD_NOTIFICATIONS_VIA_API = 100) | ○ |
| C-46 | POST /notifications/:id/reading で既読 | E-01, E-16 | ○ |
| C-47 | DELETE /notifications/:id/reading で未読 | E-01, E-16 | ○ |
| C-48 | POST /notifications/bulk_reading で全既読 | E-01, E-17 | ○ |
| C-49 | GET /users でユーザー一覧取得 | E-01, E-18 | ○ |
| C-50 | ユーザー更新・削除には権限が必要 | E-18 (ensure_permission_to_change_user) | ○ |
| C-51 | GET /search でカード検索 | E-01, E-23 | ○ |
| C-52 | Webhook購読可能なアクション一覧 | **根拠なし** | △ |
| C-53 | レスポンスJSONの詳細フィールド構造 | **根拠不足** | △ |

## 4) 不足情報（Unknown / Missing）
- **Webhook購読アクションの詳細**
  - Webhookのsubscribed_actionsで指定可能なアクション名の一覧がコードから明確に特定できませんでした
  - 候補：`app/models/webhook/triggerable.rb` / Webhookのイベント定義ファイル / テストフィクスチャ
- **レスポンスJSONの詳細構造**
  - Viewテンプレート（Jbuilder等）の詳細分析が不足しており、レスポンスのフィールド構造は推測を含みます
  - 候補：`app/views/**/*.json.jbuilder` / `app/views/**/*.json.erb` / APIテスト

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - ルーティング定義とコントローラー実装は明確に対応
- **0: 低リスク** - 認証・認可の仕組みは明確に文書化
- **1: 中リスク** - Webhookのイベント名については実装確認が必要
- **1: 中リスク** - レスポンスJSONの詳細はViewテンプレートの確認が必要
- **0: 低リスク** - レート制限値はコードから正確に抽出

## 6) レビュアーチェックリスト（最小）
- [ ] Webhook購読可能なアクション名が正しいか確認（`app/models/webhook/`ディレクトリを確認）
- [ ] レスポンスJSONのフィールド構造がViewテンプレートと一致するか確認
- [ ] パブリックAPIと内部API（HTML用）の区別が適切か確認
- [ ] エラーレスポンスの形式が実装と一致するか確認
- [ ] ページネーションのパラメータ名が実装と一致するか確認
