--- name: resume-builder description: 简历制作流水线:为求职 / 比赛 / 升学新建、完善或重组简历(中文 / 英文,1–2 页),覆盖对话收集→事实核对→撰写→画廊选模板→Typst 排版→浏览器可视化精修→导出 PDF,强调事实可溯源、不编造。触发词:简历、resume、CV、投简历、改简历。 --- # Resume Builder — 简历制作流水线 ## 适用场景 用户要为某个具体目标(求职岗位 / 比赛 / 升学)制作中文或英文简历,或要把不同用途的简历分目录管理。 ## 能力边界(不做什么) - 只做 **1–2 页**求职 / 比赛 / 升学简历。 - 不做:三页及以上简历、多页学术 CV、求职信 / 推荐信、作品集 / 个人主页、手机和平板编辑。 - 素材只通过对话提供(粘贴文字、口述、让 Agent 读本地 PDF);网页端不上传旧简历、PDF 或 JD。 - 编辑器不内置 AI 对话、不做跨板块拖拽、不做快照回滚;所有数据只在本机,不调用云端接口。 超出范围就明示用户,另寻工具。 ## 项目归档(每个用途一个独立目录) ```text <用途>/ ├── resume.json ← 唯一内容数据源,Agent 与网页编辑器共同读写 ├── resume.pdf ← 导出的正式交付物(姓名-目标岗位-电话.pdf) └── work/ ├── 信息整理.md ← 素材库 ├── claim-map.md ← 事实追溯表 ├── session.json ← 阶段状态机(Agent 与本地服务协作) ├── events.jsonl ← 事件日志 └── build/ ← 渲染中间产物,不作为交付物 ``` 用途目录之间互不联动。新建简历先建目录,再开始收集。 ## 核心原则 - **撰写前必读**:在撰写、改写、审计简历或针对 JD 定制之前,**必须完整阅读 [Resume-Writing-Guide-LLM.md](references/Resume-Writing-Guide-LLM.md)**,并按其方法进行内容取舍、证据表达与措辞调整。它是本 skill 写作方法论的唯一权威,也适用于模板适配时的压缩与润色;不能只读阶段说明就直接动笔。同一会话已完整读过后,后续按需回查,不必每轮重读。 - **事实不可编造(最高优先级)**:决策链 `真实性 > 岗位匹配 > 证据强度 > 个人贡献 > 结果影响 > 可扫描性 > 文辞漂亮`。没有可靠数字时**不估算、不补造、不美化**,改用真实的上线、采用、验收、规模、交付物、决策影响或外部认可。 - **强表述必须可举证**:`主导`、`Owner`、`独立负责`、`设计`、`优化` 等说法要有事实支撑;团队结果不得自动写成个人结果。 - **目标决定取舍**:每份简历围绕一个明确的「背景 + 目的」,与目标无关的经历果断舍弃并说明理由。重包装 ≠ 编造。 - **内容表达与排版质量**:内容清楚、有重点,版面饱满、均衡、易扫读。两者冲突时保留核心证据与可读性;不为排满页面增加空话、重复或无关内容。 - **两阶段撰写**:先产出**模板无关**的完整内容稿;用户选定模板后,才做模板相关的压缩、排序、断行和页数控制。 - **模板由用户选**:画廊分中文与英文,各 9 套;中文使用指定的 9 个上游原版排版库,英文复用既有来源的原版模板,其中 Harvard 为原版纯黑白。Agent 不替用户最终决定,也不自行重写模板版式。中英文各用其原版字体与布局,不做跨语言或双语适配。 - **提问驱动完善**:缺口分优先级批量提问;用户说"跳过 / 没有"就接受,不反复追问。 ## 事实与防幻觉(claim 追溯) 每份简历在 `<用途>/work/claim-map.md` 维护一张三列表,贯穿收集→撰写→导出全过程: | 简历内容 | 来源 | 状态 | |---|---|---| | 某某大学 某专业本科 | 原 PDF / 用户口述 | ✅ 已确认 | | 某项目 年化收益 X% | (待用户给出) | ⛔ 缺失阻塞 | 四态:**✅ 已确认**(可写入)· **❓ 待确认**(暂不写入,等确认)· **⛔ 缺失阻塞**(高危且缺失,必须先问清才能动笔)· **➖ 已省略**(经用户同意不写)。 高危类目(要么确认、要么经用户同意省略,绝不猜、不偷删):身份信息 · 学历 / 学校 · 雇主 / 公司 · 时间日期 · 论文 / 专利 · 量化数字 · 照片取舍。 claim-map 由 Agent 在对话中维护;网页端只读展示,不自动改状态。 ## 阶段流程与阅读路由 ```text A 对话收集与模板无关撰写 → B 模板选择(画廊)→ C 模板适配与正式排版 → D 可视化精修(编辑器)→ F 正式导出 D 中用户换模板 → E 重新排版检查 → 回 D ``` | 阶段 | Agent 做什么 | 进入时读取 | |---|---|---| | A | 收集素材、确认目标、claim-map、缺口提问、模板无关内容稿 | `references/writing-stage.md`(首次调用即读) | | B | 启动本地画廊,等用户选模板,自动获取结果 | `references/template-selection.md` | | C | 按所选模板二轮精修,写入 `resume.json`,渲染并检查 | `references/rendering-stage.md` + `references/data-contract.md` | | D | 与网页编辑器协作精修(双方改同一份 JSON) | `references/editor-stage.md` | | E | 针对新模板重新排版和检查 | `references/rendering-stage.md` 的换模板一节 | | F | 终检后引导导出规范命名 PDF | `references/editor-stage.md` 的导出一节 | - 服务器、前端、模板语法、Typst 排错细节全部放在上表按需文件里,主入口不展开。**阶段 A 不启动任何服务、不讨论模板与排版实现。** - **运行与恢复**:Windows 使用 `scripts/run.ps1`、macOS 使用 `scripts/run.sh` 调用服务和脚本,或使用 bootstrap 输出的解释器绝对路径。默认只装基础运行时,选模板后按需准备字体。首次渲染失败读取具体错误,不连续盲目重试;详见阶段 B/C。 - **日常制作只检查当前简历**:内容与版面检查按 `references/rendering-stage.md` §4 执行,已检查且未变化的部分不重复检查。发布版不附带开发测试流程。 - **恢复旧项目**:先看 `work/session.json` 的 `stage` 字段,按上表路由到对应阶段文件继续。模板退役或语言不匹配时回画廊让用户重选;不得静默换模板。 ## 何时进入模板选择(Agent 自行判断,不问用户"该进下一步吗") 同时满足以下条件即告知用户"素材已充分,即将进入模板选择",然后读 `references/template-selection.md`: 1. 内容稿覆盖全部拟保留板块与条目,无占位空壳; 2. claim-map 中 **⛔ 缺失阻塞清零**(已确认,或经用户同意记 ➖); 3. 关键 ❓ 已确认过一轮(影响定稿的都问过); 4. 用户暂无新增信息。 ## 信息安全(硬性要求) - skill 文件、任何"模板 / 示例 / 流程"内容中**不得出现真实姓名、电话、邮箱、学校、公司等个人数据**,一律占位符脱敏。 - 用户真实数据只存在于其自己的用途目录中,不回灌进 skill。 - 第三方原始源码与许可证保留其上游署名;其中公开示例仅用于来源审计,不注入用户简历。画廊按用户要求使用上游公开预览原图;上游公开示例仅供展示,不注入用户数据。