---
generated_at: 2026-01-29 10:30:00
metrics:
  claims_total: 55
  claims_with_evidence: 52
  claims_without_evidence: 3
confidence_derived: 0.95
---

# 根拠レポート：非機能要件テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：52 / 55、根拠なし：3
- 優先レビュー（高）
  1. **NFT-041（Sentryエラー監視）**：Sentry設定は確認できるが、実運用時の動作は実環境での検証が必要
  2. **NFT-053（APIバージョニング）**：routes.rbで確認できるが、互換性の詳細は実装コードの精査が必要
  3. **NFT-054/055（OmniAuth検証）**：設定は確認できるが、プロバイダー側の設定との連携は外部依存

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

- E-01: `config/initializers/rack_attack.rb` - レート制限・スロットリング設定
- E-02: `config/puma.rb` - Pumaサーバー設定（スレッド・ワーカー）
- E-03: `config/initializers/devise.rb` - 認証設定（パスワード長・ストレッチ）
- E-04: `config/initializers/secure_password.rb` - パスワード複雑性要件
- E-05: `config/initializers/sentry.rb` - エラー監視設定
- E-06: `config/initializers/cors.rb` - CORS設定
- E-07: `config/initializers/filter_parameter_logging.rb` - ログフィルタリング設定
- E-08: `config/initializers/01_redis.rb` - Redis接続プール設定
- E-09: `config/initializers/sidekiq.rb` - Sidekiq設定
- E-10: `config/initializers/lograge.rb` - 構造化ログ設定
- E-11: `config/initializers/actioncable.rb` - ActionCable設定
- E-12: `config/initializers/datadog.rb` - Datadog APM設定
- E-13: `config/environments/production.rb` - 本番環境設定
- E-14: `config/schedule.yml` - スケジュールジョブ設定
- E-15: `lib/redis/lock_manager.rb` - 分散ロック実装
- E-16: `lib/webhooks/trigger.rb` - Webhookタイムアウト設定
- E-17: `app/models/user.rb` - ユーザーモデル（MFA・暗号化）
- E-18: `app/models/account_user.rb` - アカウントユーザーモデル（ロール）
- E-19: `app/models/attachment.rb` - 添付ファイルモデル（バリデーション）
- E-20: `app/models/application_record.rb` - 基底モデル（文字列長検証）
- E-21: `app/models/channel/email.rb` - Emailチャンネル（暗号化）
- E-22: `app/policies/application_policy.rb` - 認可ポリシー基底クラス
- E-23: `app/jobs/application_job.rb` - ジョブ基底クラス
- E-24: `app/jobs/mutex_application_job.rb` - 排他制御ジョブ基底クラス
- E-25: `app/services/mfa/authentication_service.rb` - MFA認証サービス
- E-26: `app/controllers/api/v1/profile/mfa_controller.rb` - MFAコントローラー

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | API一般リクエストレート制限（3000req/分） | E-01 | ○ |
| C-02 | ログインスロットリング IP別（5回/5分） | E-01 | ○ |
| C-03 | ログインスロットリング メール別（10回/15分） | E-01 | ○ |
| C-04 | パスワードリセットスロットリング（5回/30分） | E-01 | ○ |
| C-05 | MFA認証スロットリング（5回/分） | E-01 | ○ |
| C-06 | Widget API会話作成スロットリング（6回/12時間） | E-01 | ○ |
| C-07 | レポートAPIユーザーレベルスロットリング（100req/分） | E-01 | ○ |
| C-08 | レポートAPIアカウントレベルスロットリング（1000req/分） | E-01 | ○ |
| C-09 | 連絡先検索APIスロットリング（100req/分） | E-01 | ○ |
| C-10 | Pumaスレッド設定（デフォルト5） | E-02 | ○ |
| C-11 | Pumaワーカー設定（WEB_CONCURRENCY） | E-02 | ○ |
| C-12 | Webhookタイムアウト（デフォルト5秒） | E-16 | ○ |
| C-13 | Redis接続タイムアウト（1秒） | E-08 | ○ |
| C-14 | 静的ファイルキャッシュ（1年） | E-13 | ○ |
| C-15 | パスワード複雑性要件（大文字/小文字/数字/特殊文字各1） | E-04 | ○ |
| C-16 | パスワード長（6-128文字） | E-03 | ○ |
| C-17 | パスワードハッシュストレッチ（11回） | E-03 | ○ |
| C-18 | MFA OTPシークレット暗号化 | E-17 | ○ |
| C-19 | MFAバックアップコード検証 | E-25 | ○ |
| C-20 | パスワードリセットトークン有効期限（6時間） | E-03 | ○ |
| C-21 | メール変更時の再確認要求 | E-03 | ○ |
| C-22 | Email Channel機密データ暗号化 | E-21 | ○ |
| C-23 | OTPシークレット決定論的暗号化 | E-17 | ○ |
| C-24 | 機密パラメータログフィルタリング | E-07 | ○ |
| C-25 | Punditポリシーによる認可 | E-22 | ○ |
| C-26 | アカウントユーザーロール（agent/administrator） | E-18 | ○ |
| C-27 | 文字列長制限（text 20000/string 255） | E-20 | ○ |
| C-28 | ファイルアップロードサイズ制限（デフォルト40MB） | E-19 | ○ |
| C-29 | ファイルタイプ制限 | E-19 | ○ |
| C-30 | FORCE_SSL設定 | E-13 | ○ |
| C-31 | CORSポリシー設定 | E-06 | ○ |
| C-32 | Super Adminログイン保護（5回/5分） | E-01 | ○ |
| C-33 | アカウント作成保護（5回/30分） | E-01 | ○ |
| C-34 | ヘルスチェックエンドポイントスロットル除外 | E-01 | ○ |
| C-35 | 分散ロックタイムアウト（1秒） | E-15 | ○ |
| C-36 | MutexApplicationJobロック機構 | E-24 | ○ |
| C-37 | 定期バージョンチェック（毎日12:00 UTC） | E-14 | ○ |
| C-38 | 古い通知削除（1ヶ月以上/ユーザー毎300件） | E-14 | ○ |
| C-39 | 会話自動解決（5分毎） | E-14 | ○ |
| C-40 | 自動割り当て（15分毎） | E-14 | ○ |
| C-41 | Sentryエラー監視（staging/production） | E-05 | ○ |
| C-42 | Rack::Timeoutエラー除外 | E-05 | ○ |
| C-43 | ActionCable Redis接続（GCP対応） | E-11 | ○ |
| C-44 | Alfred Redisプールサイズ（デフォルト5） | E-08 | ○ |
| C-45 | Velma Redisプールサイズ（固定5） | E-08 | ○ |
| C-46 | Sidekiqキュー設定 | E-14 | ○ |
| C-47 | Lograge JSON形式ログ | E-10 | ○ |
| C-48 | Sidekiq JSON形式ログ | E-09 | ○ |
| C-49 | Rack Attackブロックログ | E-01 | ○ |
| C-50 | Datadog APMトレーシング | E-12 | ○ |
| C-51 | Sentryトランザクションサンプリング（10%） | E-05 | ○ |
| C-52 | デシリアライズエラー処理 | E-23 | ○ |
| C-53 | APIバージョニング（v1/v2） | **根拠あり（routes.rb確認）** | ○ |
| C-54 | OmniAuth Google OAuth2認証 | E-17 | △ |
| C-55 | OmniAuth SAML認証 | E-17 | △ |

## 4) 不足情報（Unknown / Missing）
- **OmniAuth連携の詳細テスト条件**：プロバイダー側（Google/SAML IdP）の設定・応答パターンに依存するため、外部サービスとの統合テスト仕様が必要
  - 候補：Google Cloud Console設定 / SAML IdP設定 / 認証フロー仕様書
- **実負荷テストの基準値**：コード上の設定値は確認できるが、実環境での性能基準（応答時間目標等）は未定義
  - 候補：SLA定義書 / 性能要件定義書 / インフラ設計書

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - NFT-047〜051：ログ・監視関連（運用影響は限定的）
- **1: 中リスク** - NFT-010〜014：性能関連（環境依存の調整が必要）
- **1: 中リスク** - NFT-035〜040：可用性関連（スケジュールジョブの監視が必要）
- **2: 高リスク** - NFT-001〜009：レート制限（攻撃防御の要）
- **2: 高リスク** - NFT-015〜033：セキュリティ関連（認証・認可・暗号化）

## 6) レビュアーチェックリスト（最小）
- [ ] レート制限値（NFT-001〜009）がビジネス要件と整合しているか確認
- [ ] パスワードポリシー（NFT-015〜017）がセキュリティ要件を満たしているか確認
- [ ] MFA実装（NFT-018〜019）が正しく動作するか実機テストで確認
- [ ] 暗号化設定（NFT-022〜023）が有効になっているか環境設定を確認
- [ ] スケジュールジョブ（NFT-037〜040）の実行タイミングが運用要件と整合しているか確認
- [ ] 外部認証（NFT-054〜055）のプロバイダー設定が完了しているか確認
