---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 172
  claims_with_evidence: 172
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：create-payload-app単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：172 / 172、根拠なし：0
- 優先レビュー（高）
  1. **CLI引数パース機能（UT-CPA-001〜006）**：Mainクラスのコンストラクタと初期化処理
  2. **パッケージマネージャー検出（UT-CPA-036〜045）**：get-package-manager.tsの各検出ロジック
  3. **AST変換処理（UT-CPA-143〜166）**：payload-config.tsの構造検出と変換

## 2) 参照した情報（Evidence一覧）
> ソースコードファイルと関連ドキュメントを列挙

- E-01: `packages/create-payload-app/src/main.ts` - CLIエントリーポイント、Mainクラス
- E-02: `packages/create-payload-app/src/index.ts` - main関数エクスポート
- E-03: `packages/create-payload-app/src/types.ts` - 型定義（CliArgs, ProjectTemplate等）
- E-04: `packages/create-payload-app/src/utils/casing.ts` - ケース変換ユーティリティ
- E-05: `packages/create-payload-app/src/utils/getLatestPackageVersion.ts` - NPMバージョン取得
- E-06: `packages/create-payload-app/src/utils/messages.ts` - メッセージ生成ユーティリティ
- E-07: `packages/create-payload-app/src/utils/log.ts` - ロギングユーティリティ
- E-08: `packages/create-payload-app/src/utils/copy-recursive-sync.ts` - ファイルコピー
- E-09: `packages/create-payload-app/src/utils/git.ts` - Git初期化ユーティリティ
- E-10: `packages/create-payload-app/src/lib/get-package-manager.ts` - パッケージマネージャー検出
- E-11: `packages/create-payload-app/src/lib/generate-secret.ts` - シークレット生成
- E-12: `packages/create-payload-app/src/lib/select-db.ts` - データベース選択
- E-13: `packages/create-payload-app/src/lib/templates.ts` - テンプレート管理
- E-14: `packages/create-payload-app/src/lib/parse-template.ts` - テンプレートパース
- E-15: `packages/create-payload-app/src/lib/parse-project-name.ts` - プロジェクト名パース
- E-16: `packages/create-payload-app/src/lib/create-project.ts` - プロジェクト作成
- E-17: `packages/create-payload-app/src/lib/download-template.ts` - テンプレートダウンロード
- E-18: `packages/create-payload-app/src/lib/download-example.ts` - サンプルダウンロード
- E-19: `packages/create-payload-app/src/lib/examples.ts` - サンプル管理
- E-20: `packages/create-payload-app/src/lib/install-packages.ts` - パッケージインストール
- E-21: `packages/create-payload-app/src/lib/manage-env-files.ts` - 環境ファイル管理
- E-22: `packages/create-payload-app/src/lib/configure-payload-config.ts` - Payload設定
- E-23: `packages/create-payload-app/src/lib/configure-plugin-project.ts` - プラグイン設定
- E-24: `packages/create-payload-app/src/lib/init-next.ts` - Next.js初期化
- E-25: `packages/create-payload-app/src/lib/update-payload-in-project.ts` - Payload更新
- E-26: `packages/create-payload-app/src/lib/wrap-next-config.ts` - Next.js設定ラップ
- E-27: `packages/create-payload-app/src/lib/ast/types.ts` - AST型定義
- E-28: `packages/create-payload-app/src/lib/ast/utils.ts` - ASTユーティリティ
- E-29: `packages/create-payload-app/src/lib/ast/adapter-config.ts` - アダプター設定
- E-30: `packages/create-payload-app/src/lib/ast/payload-config.ts` - AST変換メイン
- E-31: `packages/create-payload-app/src/lib/ast/package-json.ts` - package.json更新
- E-32: `packages/create-payload-app/CLAUDE.md` - パッケージ内部ドキュメント

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

### Main クラス（UT-CPA-001〜008）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | CLIオプションのパース機能 | E-01 (main.ts:36-77) | ○ |
| C-002 | エイリアスオプションの解決 | E-01 (main.ts:69-74) | ○ |
| C-003 | ブール型フラグのパース | E-01 (main.ts:62-67) | ○ |
| C-004 | --helpフラグの処理 | E-01 (main.ts:94-97) | ○ |
| C-005 | Next.jsプロジェクト検出と統合 | E-01 (main.ts:104-209) | ○ |
| C-006 | 未サポートNext.jsバージョン警告 | E-01 (main.ts:115-121) | ○ |
| C-007 | main関数のエントリーポイント | E-02 (index.ts:4-12) | ○ |
| C-008 | main関数のエラーハンドリング | E-02 (index.ts:7-11) | ○ |

### ケース変換ユーティリティ（UT-CPA-009〜015）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-009 | toCamelCase - ハイフン区切り | E-04 (casing.ts:1-7) | ○ |
| C-010 | toCamelCase - アンダースコア区切り | E-04 (casing.ts:1-7) | ○ |
| C-011 | toCamelCase - スペース区切り | E-04 (casing.ts:1-7) | ○ |
| C-012 | toCamelCase - 空文字列 | E-04 (casing.ts:6) | ○ |
| C-013 | toPascalCase - ハイフン区切り | E-04 (casing.ts:9-14) | ○ |
| C-014 | toPascalCase - アンダースコア区切り | E-04 (casing.ts:9-14) | ○ |
| C-015 | toPascalCase - 空文字列 | E-04 (casing.ts:9-14) | ○ |

### バージョン取得（UT-CPA-016〜018）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-016 | getLatestPackageVersion - 正常系 | E-05 (getLatestPackageVersion.ts:6-34) | ○ |
| C-017 | getLatestPackageVersion - デバッグ出力 | E-05 (getLatestPackageVersion.ts:25-27) | ○ |
| C-018 | getLatestPackageVersion - エラー処理 | E-05 (getLatestPackageVersion.ts:30-33) | ○ |

### ログユーティリティ（UT-CPA-019〜023）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-019 | warning関数 | E-07 (log.ts:4-6) | ○ |
| C-020 | info関数 | E-07 (log.ts:8-10) | ○ |
| C-021 | error関数 | E-07 (log.ts:12-14) | ○ |
| C-022 | debug関数（DEBUG=true） | E-07 (log.ts:16-20) | ○ |
| C-023 | debug関数（DEBUG未設定） | E-07 (log.ts:17) | ○ |

### ファイルコピー（UT-CPA-024〜027）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-024 | ディレクトリ再帰コピー | E-08 (copy-recursive-sync.ts:9-30) | ○ |
| C-025 | 単一ファイルコピー | E-08 (copy-recursive-sync.ts:27-28) | ○ |
| C-026 | ignoreRegex除外パターン | E-08 (copy-recursive-sync.ts:16-24) | ○ |
| C-027 | 存在しないパス処理 | E-08 (copy-recursive-sync.ts:10-12) | ○ |

### Git操作（UT-CPA-028〜030）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-028 | Git初期化とコミット | E-09 (git.ts:7-30) | ○ |
| C-029 | 既存リポジトリ検出 | E-09 (git.ts:14-16, 32-40) | ○ |
| C-030 | Git未インストール時警告 | E-09 (git.ts:27-28) | ○ |

### メッセージ生成（UT-CPA-031〜035）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-031 | helpMessage | E-06 (messages.ts:18-48) | ○ |
| C-032 | successMessage | E-06 (messages.ts:56-73) | ○ |
| C-033 | npm用メッセージ | E-06 (messages.ts:62) | ○ |
| C-034 | moveMessage | E-06 (messages.ts:84-100) | ○ |
| C-035 | feedbackOutro | E-06 (messages.ts:102-104) | ○ |

### パッケージマネージャー検出（UT-CPA-036〜045）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-036 | --use-pnpmフラグ | E-10 (get-package-manager.ts:15) | ○ |
| C-037 | --use-yarnフラグ | E-10 (get-package-manager.ts:17) | ○ |
| C-038 | --use-npmフラグ | E-10 (get-package-manager.ts:19) | ○ |
| C-039 | --use-bunフラグ | E-10 (get-package-manager.ts:21) | ○ |
| C-040 | pnpm-lock.yaml検出 | E-10 (get-package-manager.ts:15) | ○ |
| C-041 | yarn.lock検出 | E-10 (get-package-manager.ts:17) | ○ |
| C-042 | package-lock.json検出 | E-10 (get-package-manager.ts:19) | ○ |
| C-043 | bun.lockb検出 | E-10 (get-package-manager.ts:21) | ○ |
| C-044 | pnpmデフォルト検出 | E-10 (get-package-manager.ts:22-25) | ○ |
| C-045 | 環境変数検出 | E-10 (get-package-manager.ts:37-53) | ○ |

### シークレット生成（UT-CPA-046〜047）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-046 | 24文字シークレット生成 | E-11 (generate-secret.ts:3-5) | ○ |
| C-047 | ランダム性確認 | E-11 (generate-secret.ts:4) | ○ |

### データベース選択（UT-CPA-048〜056）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-048 | --db mongodb | E-12 (select-db.ts:47-55) | ○ |
| C-049 | --db postgres | E-12 (select-db.ts:47-55) | ○ |
| C-050 | --db sqlite | E-12 (select-db.ts:47-55) | ○ |
| C-051 | --db vercel-postgres | E-12 (select-db.ts:47-55) | ○ |
| C-052 | --db d1-sqlite | E-12 (select-db.ts:47-55) | ○ |
| C-053 | 無効なDB種類エラー | E-12 (select-db.ts:48-54) | ○ |
| C-054 | --db-accept-recommended | E-12 (select-db.ts:80-81) | ○ |
| C-055 | --db-connection-string | E-12 (select-db.ts:82-83) | ○ |
| C-056 | テンプレートdbType | E-12 (select-db.ts:56-58) | ○ |

### テンプレート管理（UT-CPA-057〜065）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-057 | validateTemplate - blank | E-13 (templates.ts:5-13) | ○ |
| C-058 | validateTemplate - website | E-13 (templates.ts:5-13) | ○ |
| C-059 | validateTemplate - 無効名 | E-13 (templates.ts:7-10) | ○ |
| C-060 | getValidTemplates一覧 | E-13 (templates.ts:15-50) | ○ |
| C-061 | テンプレート構造 | E-13 (templates.ts:17-49) | ○ |
| C-062 | parseTemplate - 指定名 | E-14 (parse-template.ts:9-15) | ○ |
| C-063 | parseTemplate - 無効名エラー | E-14 (parse-template.ts:12-14) | ○ |
| C-064 | parseProjectName - --name | E-15 (parse-project-name.ts:7-8) | ○ |
| C-065 | parseProjectName - 位置引数 | E-15 (parse-project-name.ts:10-11) | ○ |

### プロジェクト作成（UT-CPA-066〜075）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-066 | テンプレートからプロジェクト作成 | E-16 (create-project.ts:73-189) | ○ |
| C-067 | --dry-run | E-16 (create-project.ts:84-87) | ○ |
| C-068 | --local-template | E-16 (create-project.ts:97-104) | ○ |
| C-069 | --no-deps | E-16 (create-project.ts:173-184) | ○ |
| C-070 | --no-git | E-16 (create-project.ts:186-188) | ○ |
| C-071 | --version指定 | E-16 (create-project.ts:133-147) | ○ |
| C-072 | updatePackageJSON - name更新 | E-16 (create-project.ts:197-223) | ○ |
| C-073 | workspace:*バージョン置換 | E-16 (create-project.ts:236-239) | ○ |
| C-074 | payloadバージョン更新 | E-16 (create-project.ts:240-241) | ○ |
| C-075 | @payloadcms/*バージョン更新 | E-16 (create-project.ts:240-241) | ○ |

### ダウンロード処理（UT-CPA-076〜083）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-076 | テンプレートダウンロード | E-17 (download-template.ts:9-36) | ○ |
| C-077 | debug出力 | E-17 (download-template.ts:22-26) | ○ |
| C-078 | ダウンロードエラー | E-17 (download-template.ts:42-43) | ○ |
| C-079 | サンプルダウンロード | E-18 (download-example.ts:9-36) | ○ |
| C-080 | サンプルダウンロードエラー | E-18 (download-example.ts:42-43) | ○ |
| C-081 | getExamples | E-19 (examples.ts:5-18) | ○ |
| C-082 | parseExample - 有効名 | E-19 (examples.ts:20-38) | ○ |
| C-083 | parseExample - 無効名 | E-19 (examples.ts:31-34) | ○ |

### パッケージインストール（UT-CPA-084〜088）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-084 | pnpmインストール | E-20 (install-packages.ts:17-30) | ○ |
| C-085 | yarnインストール | E-20 (install-packages.ts:17-30) | ○ |
| C-086 | npmインストール | E-20 (install-packages.ts:33-37) | ○ |
| C-087 | bunインストール | E-20 (install-packages.ts:17-30) | ○ |
| C-088 | インストール失敗エラー | E-20 (install-packages.ts:41-43) | ○ |

### 環境ファイル管理（UT-CPA-089〜095）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-089 | .env作成 | E-21 (manage-env-files.ts:139-152) | ○ |
| C-090 | .env更新 | E-21 (manage-env-files.ts:153-168) | ○ |
| C-091 | .env.example参照 | E-21 (manage-env-files.ts:123-137) | ○ |
| C-092 | pluginテンプレート除外 | E-21 (manage-env-files.ts:115-121) | ○ |
| C-093 | --dry-run | E-21 (manage-env-files.ts:104-107) | ○ |
| C-094 | POSTGRES_URL設定 | E-21 (manage-env-files.ts:59-60) | ○ |
| C-095 | d1-sqlite除外 | E-21 (manage-env-files.ts:29) | ○ |

### Payload設定（UT-CPA-096〜102）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-096 | dbType設定更新 | E-22 (configure-payload-config.ts:24-97) | ○ |
| C-097 | dbType undefined処理 | E-22 (configure-payload-config.ts:34-36) | ○ |
| C-098 | storageAdapter追加 | E-22 (configure-payload-config.ts:32) | ○ |
| C-099 | sharp=false削除 | E-22 (configure-payload-config.ts:84) | ○ |
| C-100 | プラグインプロジェクト設定 | E-23 (configure-plugin-project.ts:9-50) | ○ |
| C-101 | キャメルケース変換 | E-23 (configure-plugin-project.ts:30-35) | ○ |
| C-102 | パスカルケース変換 | E-23 (configure-plugin-project.ts:37) | ○ |

### Next.js初期化（UT-CPA-103〜113）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-103 | initNext正常系 | E-24 (init-next.ts:43-107) | ○ |
| C-104 | layout.tsx検出エラー | E-24 (init-next.ts:66-75) | ○ |
| C-105 | nextConfigType判定失敗 | E-24 (init-next.ts:57-64) | ○ |
| C-106 | getNextAppDetails | E-24 (init-next.ts:239-330) | ○ |
| C-107 | srcディレクトリ検出 | E-24 (init-next.ts:240) | ○ |
| C-108 | Next.js 15サポート判定 | E-24 (init-next.ts:277-286) | ○ |
| C-109 | Next.js 14非サポート判定 | E-24 (init-next.ts:277-286) | ○ |
| C-110 | Payload検出 | E-24 (init-next.ts:291-300) | ○ |
| C-111 | updatePayloadInProject | E-25 (update-payload-in-project.ts:16-87) | ○ |
| C-112 | 最新バージョンチェック | E-25 (update-payload-in-project.ts:42-44) | ○ |
| C-113 | nextConfigPath未設定エラー | E-25 (update-payload-in-project.ts:19-21) | ○ |

### Next.js設定ラップ（UT-CPA-114〜119）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-114 | wrapNextConfig - CJS | E-26 (wrap-next-config.ts:18-34) | ○ |
| C-115 | wrapNextConfig - ESM | E-26 (wrap-next-config.ts:18-34) | ○ |
| C-116 | wrapNextConfig - TS | E-26 (wrap-next-config.ts:18-34) | ○ |
| C-117 | parseAndModifyConfigContent - CJS | E-26 (wrap-next-config.ts:46-74) | ○ |
| C-118 | parseAndModifyConfigContent - ESM | E-26 (wrap-next-config.ts:75-121) | ○ |
| C-119 | パースエラー処理 | E-26 (wrap-next-config.ts:122-131) | ○ |

### AST型定義（UT-CPA-120〜121）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-120 | ALL_DATABASE_ADAPTERS | E-27 (types.ts:120-126) | ○ |
| C-121 | ALL_STORAGE_ADAPTERS | E-27 (types.ts:128-136) | ○ |

### ASTユーティリティ（UT-CPA-122〜134）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-122 | findImportDeclaration - 存在 | E-28 (utils.ts:15-25) | ○ |
| C-123 | findImportDeclaration - 不存在 | E-28 (utils.ts:22-24) | ○ |
| C-124 | addImportDeclaration - 新規 | E-28 (utils.ts:52-109) | ○ |
| C-125 | addImportDeclaration - 既存追加 | E-28 (utils.ts:67-81) | ○ |
| C-126 | addImportDeclaration - 位置指定 | E-28 (utils.ts:90-92) | ○ |
| C-127 | removeImportDeclaration - 存在 | E-28 (utils.ts:111-130) | ○ |
| C-128 | removeImportDeclaration - 不存在 | E-28 (utils.ts:126-128) | ○ |
| C-129 | removeNamedImports - 部分削除 | E-28 (utils.ts:136-174) | ○ |
| C-130 | removeNamedImports - 全削除 | E-28 (utils.ts:155-161) | ○ |
| C-131 | isNamedImportUsed - 使用中 | E-28 (utils.ts:179-205) | ○ |
| C-132 | isNamedImportUsed - 未使用 | E-28 (utils.ts:179-205) | ○ |
| C-133 | cleanupOrphanedImports | E-28 (utils.ts:210-252) | ○ |
| C-134 | formatError | E-28 (utils.ts:35-50) | ○ |

### アダプター設定（UT-CPA-135〜142）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-135 | getDbPackageName - mongodb | E-29 (adapter-config.ts:147-149) | ○ |
| C-136 | getDbPackageName - postgres | E-29 (adapter-config.ts:147-149) | ○ |
| C-137 | getDbPackageName - sqlite | E-29 (adapter-config.ts:147-149) | ○ |
| C-138 | getDbAdapterName - mongodb | E-29 (adapter-config.ts:154-156) | ○ |
| C-139 | getDbAdapterName - postgres | E-29 (adapter-config.ts:154-156) | ○ |
| C-140 | getStoragePackageName - s3 | E-29 (adapter-config.ts:161-163) | ○ |
| C-141 | getStoragePackageName - localDisk | E-29 (adapter-config.ts:161-163) | ○ |
| C-142 | getStorageAdapterName | E-29 (adapter-config.ts:168-170) | ○ |

### AST payload-config.ts（UT-CPA-143〜166）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-143 | detectPayloadConfigStructure - 成功 | E-30 (payload-config.ts:25-181) | ○ |
| C-144 | detectPayloadConfigStructure - 失敗 | E-30 (payload-config.ts:50-60) | ○ |
| C-145 | dbプロパティ検出 | E-30 (payload-config.ts:70-78) | ○ |
| C-146 | pluginsArray検出 | E-30 (payload-config.ts:81-97) | ○ |
| C-147 | buildConfigエイリアス検出 | E-30 (payload-config.ts:37-38, 109) | ○ |
| C-148 | addDatabaseAdapter - mongodb | E-30 (payload-config.ts:183-318) | ○ |
| C-149 | addDatabaseAdapter - 置換 | E-30 (payload-config.ts:284-296) | ○ |
| C-150 | 古いインポート削除 | E-30 (payload-config.ts:211-232) | ○ |
| C-151 | d1-sqliteマイグレーション | E-30 (payload-config.ts:251-262) | ○ |
| C-152 | addStorageAdapter - plugins追加 | E-30 (payload-config.ts:320-480) | ○ |
| C-153 | plugins配列作成 | E-30 (payload-config.ts:416-427) | ○ |
| C-154 | localDisk処理 | E-30 (payload-config.ts:345-352) | ○ |
| C-155 | ショートハンド変換 | E-30 (payload-config.ts:391-415) | ○ |
| C-156 | removeSharp - インポート | E-30 (payload-config.ts:482-548) | ○ |
| C-157 | removeSharp - プロパティ | E-30 (payload-config.ts:530-541) | ○ |
| C-158 | removeSharp - 存在しない場合 | E-30 (payload-config.ts:539-541) | ○ |
| C-159 | removeCommentMarkers | E-30 (payload-config.ts:551-571) | ○ |
| C-160 | validateStructure - 成功 | E-30 (payload-config.ts:577-608) | ○ |
| C-161 | validateStructure - db欠落 | E-30 (payload-config.ts:593-605) | ○ |
| C-162 | writeTransformedFile | E-30 (payload-config.ts:610-667) | ○ |
| C-163 | prettier実行 | E-30 (payload-config.ts:638-659) | ○ |
| C-164 | prettier失敗継続 | E-30 (payload-config.ts:653-659) | ○ |
| C-165 | configurePayloadConfig統合 | E-30 (payload-config.ts:669-809) | ○ |
| C-166 | ファイル不存在エラー | E-30 (payload-config.ts:797-807) | ○ |

### AST package-json.ts（UT-CPA-167〜172）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-167 | databaseAdapter追加 | E-31 (package-json.ts:26-82) | ○ |
| C-168 | 古いアダプター削除 | E-31 (package-json.ts:64-74) | ○ |
| C-169 | storageAdapter追加 | E-31 (package-json.ts:85-114) | ○ |
| C-170 | sharp削除 | E-31 (package-json.ts:117-125) | ○ |
| C-171 | packageName更新 | E-31 (package-json.ts:128-131) | ○ |
| C-172 | localDisk処理 | E-31 (package-json.ts:107-113) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースがソースコードの実装に基づいている
- 以下の観点で追加レビューを推奨：
  1. **ネットワーク依存テスト**（UT-CPA-016〜018, 076〜083）：モック化が必要
  2. **ファイルシステム操作**（UT-CPA-024〜027, 066〜075）：テスト環境のセットアップが必要
  3. **外部コマンド実行**（UT-CPA-028〜030, 084〜088）：CI環境での動作確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] 各テストケースが対応する関数・メソッドの仕様を正確に反映しているか
- [ ] 境界値テストケースが網羅的か（特に空文字列、空配列、null/undefined）
- [ ] 異常系テストケースがエラーハンドリングコードパスを網羅しているか
- [ ] テストの優先度が適切に設定されているか（金額計算・認証・データ整合性は「高」）
- [ ] モック化が必要な外部依存（ネットワーク、ファイルシステム、コマンド実行）が特定されているか
