# 开发进度

最后更新：2026-05-25

## P0 — MVP ✅

| 状态 | 任务 | 说明 |
|------|------|------|
| ✅ | chrome.storage 封装 | `utils/storage.ts` — getApiConfig / setApiConfig / isApiConfigured |
| ✅ | IndexedDB 封装 | `utils/db.ts` — textFields + fileRecords 两个 store |
| ✅ | Options 设置页 | `entrypoints/options/` — 个人信息录入 + API 配置，插件内页面 |
| ✅ | DOM 字段扫描 | `entrypoints/content.ts` — 扫描 input/select/textarea，提取 label/name/placeholder/aria-label |
| ✅ | LLM 语义匹配 | `utils/matcher.ts` — OpenAI 兼容 API，中文 prompt，JSON 解析 |
| ✅ | Background 编排 | `entrypoints/background.ts` — 扫描调度、LLM 匹配、消息路由 |
| ✅ | 字段填充 | `entrypoints/content.ts` — 支持 input/select/textarea/radio/checkbox，兼容 React 原生 setter |
| ✅ | Popup UI | `entrypoints/popup/` — idle → scanning → result 四态流转，核对 + 一键填充 |
| ✅ | 插件内跳转 | Popup 中"工作台"按钮直接打开 Options 页，不依赖外部网页 |

## P1 — 当前重点

| 状态 | 任务 | 说明 |
|------|------|------|
| ⬜ | 个人信息结构升级 | 基础字段 KV 保留，新增结构化 block（项目经历、竞赛奖项、科研经历、实习经历等），每个 block 是一组结构化数据 |
| ⬜ | Options 页改版 | 支持展示和编辑基础字段 + 结构化 block |
| ⬜ | 材料管理 UI | 基于 fileRecords schema：上传文件、命名材料名称、缩略图预览、替换、删除 |
| ⬜ | 材料匹配 + 自动上传 | 网页要求上传文件 → AI 语义匹配材料名称 → 用户确认 → 自动上传 |

## P2 — 值得做

| 状态 | 任务 | 说明 |
|------|------|------|
| ⬜ | 打包导出/导入 | 个人信息 + 材料文件打包为 zip，支持备份恢复（纯 JSON 不够，有 Blob） |
| ⬜ | PDF 材料汇总 | 材料拖拽排序 → jsPDF 拼装。评估实现复杂度，简单就做 |
| ⬜ | 置信度展示 | 匹配结果加 confidence 字段，Popup 区分高/低置信度 |

## P3 — 锦上添花

| 状态 | 任务 | 说明 |
|------|------|------|
| ⬜ | 匹配历史记录 | 记录每次匹配的 URL、字段映射、时间 |
| ⬜ | 从页面反填到 Profile | 扫描后页面已有值 → 写回个人信息库 |
| ⬜ | 云盘同步 | WebDAV 等 |

## 明确不做

- 悬浮球 / 侧边面板（现有 Popup + Options 已够用）
- 敏感字段强制确认机制（无实质收益）
- 多身份模板切换（用结构化 block 替代）
- 文档智能填充（Word/PDF 解析 → 填写 → 导出）
- 独立 Workbench 网页（全部在插件内操作）
