---
generated_at: 2026-01-28 14:15:00
metrics:
  claims_total: 76
  claims_with_evidence: 73
  claims_without_evidence: 3
confidence_derived: 0.96
---

# 根拠レポート：sign_up.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：73 / 76、根拠なし：3
- 優先レビュー（高）
  1. **UT-SUP-040, 041**：firstNameValidatorはインラインバリデータとして実装されており、独立したメソッドではない
  2. **UT-SUP-042, 043**：lastNameValidatorはインラインバリデータとして実装されており、独立したメソッドではない
  3. **UT-SUP-073**：initStateの詳細な動作確認が必要

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

- E-01: `lib/screens/sign_up/bloc/sign_up_bloc.dart` - SignUpBlocクラス、mapEventToStateメソッド
- E-02: `lib/screens/sign_up/bloc/sign_up_event.dart` - SignUpBaseEvent、FetchSignUpEventクラス
- E-03: `lib/screens/sign_up/bloc/sign_up_state.dart` - SignUpBaseState、FetchSignUpState、FetchSignInState、InitialSignUpStateクラス
- E-04: `lib/screens/sign_up/bloc/sign_up_repository.dart` - SignUpRepository、SignUpRepositoryImpクラス
- E-05: `lib/screens/sign_up/view/sign_up.dart` - SignUpScreenクラス、_SignUpScreenStateクラス
- E-06: `lib/screens/sign_up/widgets/news_letter_checkbox.dart` - NewsLetterCheckboxウィジェット
- E-07: `lib/screens/sign_up/utils/index.dart` - エクスポート定義
- E-08: `lib/data_model/sign_in_model/signin_model.dart` - SignInModelクラス
- E-09: `lib/data_model/sign_up_model/signup_model.dart` - Dataクラス、Groupクラス

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | SignUpBloc.mapEventToState正常系テスト | E-01 (L22-46) | ○ |
| C-02 | SignUpBloc.mapEventToState異常系（status=false） | E-01 (L36-42) | ○ |
| C-03 | SignUpBloc.mapEventToState例外処理 | E-01 (L43-45) | ○ |
| C-04 | nullのemail入力で空文字が渡される | E-01 (L27) | ○ |
| C-05 | nullのfirstName入力で空文字が渡される | E-01 (L28) | ○ |
| C-06 | nullのlastName入力で空文字が渡される | E-01 (L29) | ○ |
| C-07 | nullのpassword入力で空文字が渡される | E-01 (L30) | ○ |
| C-08 | nullのconfirmPassword入力で空文字が渡される | E-01 (L31) | ○ |
| C-09 | nullのnewsLetter入力でfalseが渡される | E-01 (L32) | ○ |
| C-10 | nullのagreement入力でfalseが渡される | E-01 (L33) | ○ |
| C-11 | 初期状態がInitialSignUpState | E-01 (L18) | ○ |
| C-12 | SignUpRepositoryImp.callSignUpApiパラメータ渡し | E-04 (L33-53) | ○ |
| C-13 | API成功時にSignInModelが返却 | E-04 (L59) | ○ |
| C-14 | API例外発生時にnullが返却 | E-04 (L55-58) | ○ |
| C-15 | ネットワークエラー時にnullが返却 | E-04 (L55-58) | ○ |
| C-16 | FetchSignUpEventのコンストラクタ | E-02 (L24-32) | ○ |
| C-17 | FetchSignUpEventパラメータなし初期化 | E-02 (L24-32) | ○ |
| C-18 | FetchSignUpEvent.propsが空リスト | E-02 (L35) | ○ |
| C-19 | InitialSignUpState.propsが空リスト | E-03 (L21) | ○ |
| C-20 | FetchSignUpState.success | E-03 (L33) | ○ |
| C-21 | FetchSignUpState.success.props（null以外） | E-03 (L36) | ○ |
| C-22 | FetchSignUpState.success.props（null） | E-03 (L36) | ○ |
| C-23 | FetchSignUpState.fail | E-03 (L35) | ○ |
| C-24 | FetchSignUpState.failでerrorがnull | E-03 (L35) | ○ |
| C-25 | FetchSignInState.success | E-03 (L47) | ○ |
| C-26 | FetchSignInState.fail | E-03 (L49) | ○ |
| C-27 | FetchSignInState.props（null以外） | E-03 (L50) | ○ |
| C-28 | FetchSignInState.props（null） | E-03 (L50) | ○ |
| C-29 | _updateSharedPreferencesでログイン状態保存 | E-05 (L361) | ○ |
| C-30 | _updateSharedPreferencesで顧客名保存 | E-05 (L362) | ○ |
| C-31 | _updateSharedPreferencesで顧客メール保存 | E-05 (L363) | ○ |
| C-32 | _updateSharedPreferencesで顧客トークン保存 | E-05 (L364) | ○ |
| C-33 | _updateSharedPreferencesで顧客ID保存 | E-05 (L365) | ○ |
| C-34 | 顧客名null時に空文字保存 | E-05 (L362) | ○ |
| C-35 | 顧客メールnull時に空文字保存 | E-05 (L363) | ○ |
| C-36 | 顧客IDnull時にデフォルト値2 | E-05 (L365) | ○ |
| C-37 | _onPressCreateAccountでFetchSignUpEvent発行 | E-05 (L347-355) | ○ |
| C-38 | agreementがfalse時にshowAgreementError=true | E-05 (L284-289) | ○ |
| C-39 | フォームバリデーション失敗時イベント非発行 | E-05 (L309) | ○ |
| C-40 | firstNameValidator正常系 | E-05 (L143-149) | △ |
| C-41 | firstNameValidator異常系 | E-05 (L143-149) | △ |
| C-42 | lastNameValidator正常系 | E-05 (L158-164) | △ |
| C-43 | lastNameValidator異常系 | E-05 (L158-164) | △ |
| C-44 | emailValidator正常系 | E-05 (L173-181) | ○ |
| C-45 | emailValidator異常系（空） | E-05 (L173-181) | ○ |
| C-46 | emailValidator異常系（無効形式） | E-05 (L173-181) | ○ |
| C-47 | passwordValidator正常系 | E-05 (L188-196) | ○ |
| C-48 | passwordValidator異常系（空） | E-05 (L188-196) | ○ |
| C-49 | passwordValidator境界値（6文字未満） | E-05 (L188-196) | ○ |
| C-50 | passwordValidator境界値（ちょうど6文字） | E-05 (L188-196) | ○ |
| C-51 | confirmPasswordValidator正常系 | E-05 (L214-224) | ○ |
| C-52 | confirmPasswordValidator異常系（空） | E-05 (L214-224) | ○ |
| C-53 | confirmPasswordValidator境界値（6文字未満） | E-05 (L214-224) | ○ |
| C-54 | confirmPasswordValidator異常系（不一致） | E-05 (L214-224) | ○ |
| C-55 | 成功状態でホーム画面遷移 | E-05 (L83-88) | ○ |
| C-56 | 失敗状態でエラー通知表示 | E-05 (L74-78) | ○ |
| C-57 | 失敗状態で画面が戻る | E-05 (L76-78) | ○ |
| C-58 | 成功状態で成功通知表示 | E-05 (L81-82) | ○ |
| C-59 | InitialSignUpState時にフォーム表示 | E-05 (L115-117) | ○ |
| C-60 | FetchSignUpState.fail時にフォーム表示 | E-05 (L111-113) | ○ |
| C-61 | FetchSignUpState.success時に空SizedBox表示 | E-05 (L103-109) | ○ |
| C-62 | NewsLetterCheckbox表示 | E-06 (L39-83) | ○ |
| C-63 | チェックボックス選択時コールバック（true） | E-06 (L57-61) | ○ |
| C-64 | チェックボックス解除時コールバック（false） | E-06 (L57-61) | ○ |
| C-65 | showError=trueかつ未選択時エラー表示 | E-06 (L74-80) | ○ |
| C-66 | showError=trueでも選択済みならエラー非表示 | E-06 (L74) | ○ |
| C-67 | titleがnull時に空文字表示 | E-06 (L66) | ○ |
| C-68 | initialSelection=true時isSelected=true | E-06 (L35) | ○ |
| C-69 | initialSelection=false時isSelected=false | E-06 (L35) | ○ |
| C-70 | initialSelection=null時isSelected=false | E-06 (L35) | ○ |
| C-71 | isFromSignUp=true時のオフセット | E-06 (L45-47) | ○ |
| C-72 | isFromSignUp=false時のオフセット | E-06 (L45-47) | ○ |
| C-73 | initStateでsignUpBlocが初期化 | E-05 (L49) | △ |
| C-74 | showPasswordの切り替え | E-05 (L204-207) | ○ |
| C-75 | showConfirmPasswordの切り替え | E-05 (L234-237) | ○ |
| C-76 | agreement選択時showAgreementError=false | E-05 (L250-255) | ○ |

## 4) 不足情報（Unknown / Missing）
- **バリデータメソッドの独立性**：firstNameValidator、lastNameValidatorはインラインで定義されているため、独立したメソッドとしてのテストではなくWidgetテストとして実施する必要がある
  - 候補：Widgetテスト / インテグレーションテスト / フォームバリデーションテスト
- **initStateの詳細確認**：context.read<SignUpBloc>()の呼び出しはBlocProviderが正しく設定されていることが前提
  - 候補：BlocProviderテスト / Widgetテスト / DIコンテナテスト

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - SignUpBloc、SignUpRepositoryImp、FetchSignUpEvent、FetchSignUpStateのテストケース（根拠が明確）
- **0: 低リスク** - NewsLetterCheckboxのテストケース（シンプルなStatefulWidget）
- **1: 中リスク** - _updateSharedPreferencesのテスト（SharedPreferencesのモック化が必要）
- **1: 中リスク** - インラインバリデータのテスト（Widgetテストとして実装が必要）
- **1: 中リスク** - API連携テスト（ApiClientのモック化とネットワーク状態のシミュレーションが必要）

## 6) レビュアーチェックリスト（最小）
- [ ] SignUpBlocのmapEventToStateがすべての入力パターンをカバーしているか確認
- [ ] SignUpRepositoryImpのエラーハンドリングがAPI障害時に適切に動作するか確認
- [ ] _updateSharedPreferencesのnull安全性が担保されているか確認
- [ ] バリデータのテストがWidgetテストまたはインテグレーションテストとして実装可能か確認
- [ ] NewsLetterCheckboxのコールバックが親Widgetに正しく伝播されるか確認
- [ ] agreementチェックの必須バリデーションがUIとBlocの両方で整合性があるか確認
- [ ] トークン形式（`tokenType token`）が正しくSharedPreferencesに保存されるか確認
- [ ] 顧客IDのデフォルト値（2）が適切かビジネス要件を確認
