## 背景(#517) PDF インポートのフロントエンド。backend エンドポイント(前段 issue)と注入機構(#524)をつなぎ、「アップロード → 抽出 → フォームに反映 → 編集 → 保存」を完成させる。 ## 作業内容(PR 1本) - [ ] PDF アップロード UI(ファイル選択 / ドラッグ&ドロップ、アップロード中のローディング表示) - 導線はキャリアフォーム画面の空状態に置く(空フォーム離脱の解消が目的のため、新規ユーザが最初に目にする位置) - [ ] 抽出結果を注入機構(#524)でフォーム state に反映。入力途中データがある場合の上書き確認は注入機構の仕様に従う - [ ] エラー表示: backend の日本語エラー(スキャン PDF 非対応・サイズ超過等)は `AppErrorResponse.message` をそのまま表示。web 完結のメッセージ(ファイル形式の事前チェック等)は `constants/messages.ts` に定数追加 - [ ] コンポーネントは 300 行超で分割検討(`.claude/rules/web/component-design.md`) ## 受け入れ条件 - `make ci` green・**E2E pass**(新 UI フロー追加のため必須) - 新規ユーザが「PDF アップロード → フォーム反映 → 確認 → 保存」を完走できる - 抽出失敗時にユーザが次に何をすべきか分かるメッセージが出る(再試行 / 手入力への誘導)
背景(#517)
PDF インポートのフロントエンド。backend エンドポイント(前段 issue)と注入機構(#524)をつなぎ、「アップロード → 抽出 → フォームに反映 → 編集 → 保存」を完成させる。
作業内容(PR 1本)
AppErrorResponse.messageをそのまま表示。web 完結のメッセージ(ファイル形式の事前チェック等)はconstants/messages.tsに定数追加.claude/rules/web/component-design.md)受け入れ条件
make cigreen・E2E pass(新 UI フロー追加のため必須)