---
generated_at: 2026-02-25 02:50:00
metrics:
  claims_total: 115
  claims_with_evidence: 115
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：models-account.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：115 / 115、根拠なし：0
- 優先レビュー（高）
  1. **なし**：すべてのテストケースがソースコードに基づいて生成されています

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `app/models/account/incineratable.rb` - アカウント削除機能のconcern
- E-02: `app/models/account/external_id_sequence.rb` - 外部IDシーケンス管理クラス
- E-03: `app/models/account/seedeable.rb` - テンプレートセットアップ機能のconcern
- E-04: `app/models/account/multi_tenantable.rb` - マルチテナント機能のconcern
- E-05: `app/models/account/storage.rb` - ストレージ計算機能のconcern
- E-06: `app/models/account/cancellable.rb` - アカウントキャンセル機能のconcern
- E-07: `app/models/account/join_code.rb` - 招待コード管理モデル
- E-08: `app/models/account/cancellation.rb` - キャンセル情報モデル
- E-09: `app/models/account/export.rb` - アカウントエクスポートモデル
- E-10: `app/models/account/import.rb` - アカウントインポートモデル
- E-11: `app/models/account/entropic.rb` - Entropy関連のconcern
- E-12: `app/models/account/seeder.rb` - テンプレートデータ生成クラス
- E-13: `app/models/account/data_transfer/record_set.rb` - データ転送基底クラス
- E-14: `app/models/account/data_transfer/account_record_set.rb` - アカウントレコード転送
- E-15: `app/models/account/data_transfer/user_record_set.rb` - ユーザーレコード転送
- E-16: `app/models/account/data_transfer/action_text/rich_text_record_set.rb` - RichText転送
- E-17: `app/models/account/data_transfer/active_storage/blob_record_set.rb` - Blob転送
- E-18: `app/models/account/data_transfer/active_storage/file_record_set.rb` - ファイル転送
- E-19: `app/models/account/data_transfer/entropy_record_set.rb` - Entropy転送
- E-20: `app/models/account/data_transfer/manifest.rb` - 転送マニフェスト管理

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

### Account::Incineratable (UT-ACC-001 - UT-ACC-005)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | incinerateメソッドがaccount.destroyを呼び出す | E-01 (L12-16) | ○ |
| C-02 | INCINERATION_GRACE_PERIODが30日 | E-01 (L4) | ○ |
| C-03 | due_for_incinerationスコープがcancellationのcreated_atで絞り込み | E-01 (L7) | ○ |
| C-04 | define_callbacks :incinerateが定義される | E-01 (L9) | ○ |

### Account::ExternalIdSequence (UT-ACC-006 - UT-ACC-011)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-05 | nextメソッドがwith_lockでトランザクション保護される | E-02 (L4-8, L15-19) | ○ |
| C-06 | increment!でvalueをインクリメント | E-02 (L6) | ○ |
| C-07 | valueメソッドが存在しなければnextを呼ぶ | E-02 (L10-12) | ○ |
| C-08 | initial_valueがAccount.maximum(:external_account_id)を参照 | E-02 (L22-24) | ○ |

### Account::Seedeable (UT-ACC-012 - UT-ACC-013)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | setup_customer_templateがAccount::Seeder.seedを呼ぶ | E-03 (L4-6) | ○ |
| C-10 | users.admin.firstを使用 | E-03 (L5) | ○ |

### Account::MultiTenantable (UT-ACC-014 - UT-ACC-016)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | multi_tenantがデフォルトfalse | E-04 (L5) | ○ |
| C-12 | accepting_signups?がmulti_tenantまたはAccount.none?を返す | E-04 (L9-11) | ○ |

### Account::Storage (UT-ACC-017 - UT-ACC-018)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | calculate_real_storage_bytesがboards.sumを使用 | E-05 (L6-8) | ○ |
| C-14 | Storage::Totaledをinclude | E-05 (L3) | ○ |

### Account::Cancellable (UT-ACC-019 - UT-ACC-028)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 | cancelがwith_lockで排他制御 | E-06 (L12) | ○ |
| C-16 | cancellable?かつactive?のチェック | E-06 (L13) | ○ |
| C-17 | create_cancellation!でキャンセル作成 | E-06 (L15) | ○ |
| C-18 | AccountMailer.cancellationでメール送信 | E-06 (L18) | ○ |
| C-19 | reactivateがcancellation.destroyを呼ぶ | E-06 (L27) | ○ |
| C-20 | cancelled?がcancellation.present?を返す | E-06 (L33-35) | ○ |
| C-21 | cancellable?がAccount.accepting_signups?を返す | E-06 (L37-39) | ○ |

### Account::JoinCode (UT-ACC-029 - UT-ACC-040)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | CODE_LENGTHが12 | E-07 (L2) | ○ |
| C-23 | USAGE_LIMIT_MAXが10_000_000_000 | E-07 (L3) | ○ |
| C-24 | redeem_ifがwith_lockで排他制御 | E-07 (L14) | ○ |
| C-25 | active?がusage_count < usage_limitを返す | E-07 (L19-21) | ○ |
| C-26 | resetがgenerate_codeとusage_count=0を実行 | E-07 (L23-27) | ○ |
| C-27 | generate_codeがSecureRandom.base58を使用 | E-07 (L30-34) | ○ |
| C-28 | usage_limitのバリデーション | E-07 (L7) | ○ |

### Account::Cancellation (UT-ACC-041 - UT-ACC-042)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | belongs_to :accountアソシエーション | E-08 (L2) | ○ |
| C-30 | belongs_to :initiated_byアソシエーション | E-08 (L3) | ○ |

### Account::Export (UT-ACC-043 - UT-ACC-044)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | filenameフォーマット | E-09 (L3-5) | ○ |
| C-32 | populate_zipがManifest.each_record_setを使用 | E-09 (L7-10) | ○ |

### Account::Import (UT-ACC-045 - UT-ACC-057)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | process_laterがAccount::DataImportJob.perform_laterを呼ぶ | E-10 (L18-20) | ○ |
| C-34 | checkがprocessing!を呼ぶ | E-10 (L23) | ○ |
| C-35 | ConflictErrorで:conflictとしてマーク | E-10 (L30-32) | ○ |
| C-36 | IntegrityErrorで:invalid_exportとしてマーク | E-10 (L33-35) | ○ |
| C-37 | processが完了後にmark_completedを呼ぶ | E-10 (L54) | ○ |
| C-38 | cleanupがdestroyを呼ぶ | E-10 (L67) | ○ |
| C-39 | failed?時にaccount.destroyも呼ぶ | E-10 (L68) | ○ |
| C-40 | expiredスコープの条件 | E-10 (L12) | ○ |

### Account::Entropic (UT-ACC-058 - UT-ACC-059)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 | DEFAULT_ENTROPY_PERIODが30日 | E-11 (L4) | ○ |
| C-42 | after_createでEntropyを作成 | E-11 (L8) | ○ |
| C-43 | has_one :entropyアソシエーション | E-11 (L7) | ○ |

### Account::Seeder (UT-ACC-060 - UT-ACC-065)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 | initializeでaccountとcreatorを設定 | E-12 (L4-7) | ○ |
| C-45 | seedがCurrent.setを使用 | E-12 (L9-12) | ○ |
| C-46 | Playgroundボードの作成 | E-12 (L27-28) | ○ |
| C-47 | seed!がRails.env.local?をチェック | E-12 (L15-16) | ○ |
| C-48 | 本番環境で例外をスロー | E-12 (L16) | ○ |

### Account::DataTransfer::RecordSet (UT-ACC-066 - UT-ACC-080)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | IMPORT_BATCH_SIZEが100 | E-13 (L5) | ○ |
| C-50 | exportがfind_eachまたはeachを使用 | E-13 (L21) | ○ |
| C-51 | importがeach_sliceでバッチ処理 | E-13 (L30) | ○ |
| C-52 | check_recordがID一致をチェック | E-13 (L87-88) | ○ |
| C-53 | check_recordが必須フィールドをチェック | E-13 (L91-93) | ○ |
| C-54 | check_recordが既存レコードをチェック | E-13 (L96-98) | ○ |
| C-55 | loadがJSON.parseを使用 | E-13 (L136-140) | ○ |
| C-56 | skip_toの実装 | E-13 (L126-134) | ○ |

### Account::DataTransfer::AccountRecordSet (UT-ACC-081 - UT-ACC-087)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | export_recordがdata/account.jsonに出力 | E-14 (L22-24) | ○ |
| C-58 | import_batchがaccount.update!を呼ぶ | E-14 (L34) | ○ |
| C-59 | check_recordがACCOUNT_ATTRIBUTESをチェック | E-14 (L42-44) | ○ |
| C-60 | check_recordがjoin_codeをチェック | E-14 (L46-56) | ○ |

### Account::DataTransfer::UserRecordSet (UT-ACC-088 - UT-ACC-094)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | export_recordがemail_addressを含める | E-15 (L22-23) | ○ |
| C-62 | import_batchがIdentity.find_or_create_by!を呼ぶ | E-15 (L35) | ○ |
| C-63 | import_batchが競合するユーザーを削除 | E-15 (L43-44) | ○ |
| C-64 | check_recordがATTRIBUTESをチェック | E-15 (L57-59) | ○ |

### Account::DataTransfer::ActionText::RichTextRecordSet (UT-ACC-095 - UT-ACC-102)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | transform_body_for_exportがSGIDをGIDに変換 | E-16 (L64-81) | ○ |
| C-66 | relativize_urlsがホストを除去 | E-16 (L83-100) | ○ |
| C-67 | transform_body_for_importがGIDをSGIDに変換 | E-16 (L111-130) | ○ |
| C-68 | replace_account_slugsがスラッグを置換 | E-16 (L132-144) | ○ |

### Account::DataTransfer::ActiveStorage (UT-ACC-103 - UT-ACC-108)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | BlobRecordSetがservice_nameを設定 | E-17 (L16) | ○ |
| C-70 | FileRecordSetがblob.downloadを使用 | E-18 (L14) | ○ |
| C-71 | FileRecordSetがblob.uploadを呼ぶ | E-18 (L30) | ○ |

### Account::DataTransfer::EntropyRecordSet (UT-ACC-109 - UT-ACC-110)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-72 | import_batchが既存をupdateし新規をinsert | E-19 (L20-30) | ○ |

### Account::DataTransfer::Manifest (UT-ACC-111 - UT-ACC-115)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | each_record_setがブロック必須 | E-20 (L9) | ○ |
| C-74 | each_record_setがstartから再開可能 | E-20 (L11-20) | ○ |
| C-75 | record_setsが正しい順序で返却 | E-20 (L25-42) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードから直接導出されており、根拠が明確です

## 6) レビュアーチェックリスト（最小）
- [ ] 各concernのincludedブロック内のスコープ・コールバックが網羅されているか確認
- [ ] データ転送関連のクラスで、エラーハンドリングのテストケースが十分か確認
- [ ] 排他制御（with_lock）を使用するメソッドの同時実行テストが含まれているか確認
- [ ] JoinCodeのコード生成ロジックで、衝突時のリトライ上限が適切か確認
- [ ] Import/Exportのコールバック機構が正しくテストされているか確認
- [ ] RichTextの変換処理（SGID/GID、URL相対化）の境界ケースが網羅されているか確認
