应届生简历向导(Router)
> 本文件是 Router(最小入口)。
> 所有表单 schema、鼓励指南、推荐逻辑见 references/。
> 交互流程见 modes/generate.md(核心)。
> 导出脚本见 scripts/export_freshgrad.py。
> ⚠️ 必读顺序:本文件 → modes/generate.md → references/freshgrad-form-schemas.md + freshgrad-guidance.md → DATA_CONTRACT.md(更新版)。
一、触发条件(什么时候用这个 Skill)
强烈匹配(优先路由到本向导):
- "帮我写一份应届生简历" / "生成毕业简历" / "校园招聘简历向导"
- "我今年毕业,帮我做实习+项目简历"
- "应届 计算机 简历" / "fresh grad resume" / "写一份带照片的应届简历"
- "帮我填简历表单" / "交互式简历生成"(表单驱动暗示)
- 明确说“应届” + “项目”/“实习”/“教育背景”
兼容旧触发(向导会优雅引导):
- "帮我写简历"(无 JD、无 master 上下文时默认走 generate wizard)
- "我要投校招 / 大厂实习转正简历"
不在范围内(请用其它 Skill 或工具,明确拒绝):
- 社招 / 3年以上经验 / 管理岗 / 跳槽简历 → 请使用其他通用简历工具或平台功能
- 自研花哨视觉模板(彩条、时间轴、头像式、多列复杂)→ 推荐 Reactive Resume / Enhancv / rxresu.me(本向导只做专业线性 ATS-friendly .docx)
- 求职跟踪 / 自动投递 / 简历库管理 → Teal / 招聘平台内嵌
- 扫描件 / 图片简历 OCR → 拒绝(让用户复制文字或重新填表单)
- 纯翻译(中↔英)→ 用翻译 Skill(本向导的 bilingual 是可选 preferences,表单驱动独立重写风格)
- 完整面试准备(题库、模拟面试、公司深度调研)→ 向导只产出轻量“求职推荐” + 可选 recs 章节
- 代码生成、天气、闲聊等无关 → 明确说“这个不在应届生简历向导范围内,请用对应 Skill”
歧义处理:用户说“写简历”但上下文有多年工作史 → 追问“请问你是应届生还是社招?” → 明确应届才进本向导。
二、Mode 路由表(大幅简化,专注 3 个强模式)
| mode | 用户意图 | 表单驱动? | 文档 |
|---|
| ------ | ---------- | ------------ | ------ |
generate | 从 0 启动完整交互向导(最强主流程) | ✅ 全程 popup 表单 | modes/generate.md |
refine | 基于上一版针对特定节重新弹窗编辑(教育/实习/项目/...) | ✅ 只弹对应 section form,预填当前值 | modes/refine.md (更新为 section-edit) |
export | 重新导出(不同主题/布局/是否带 recs 章节)或纯渲染已有 draft | ✅ 可选重选 preferences | modes/export.md (集成新脚本) |
路由规则(简化):
- 无 draft / 首次 →
generate(向导启动) - 刚生成完、用户说“改一下教育背景 / 第2节不对” →
refine - 用户说“换个科技绿主题再出一版” / “只要 .docx 不要 recs” →
export - 其他旧模式(若仍存在)→ 明确回复“本向导专注应届生表单驱动场景。需要其他类型简历请使用对应工具。”
成功判定:
- 至少完成 basic + education + 1 条 experience/project 的表单
- 产出 .docx(带照片占位或已嵌入) + recommendations 文件 + result.json
- 所有占位符已在最终文件或 result 中高亮提示用户
三、核心铁律(适配表单驱动,保留 anti-hallucination 精神)
- 结构化表单 = 唯一事实来源:所有 bullet / 字段 100% 来自用户 popup 填写。生成器(export_freshgrad.py + freshgrad_generator.py)只做映射 + 模板填充。绝不编造数字、项目、技术、经历。
- 占位符规则严格执行:联系方式(电话/邮箱)未提供 →
[电话待填写] / [邮箱待填写];投递前必须用户替换。所有占位在 result.json + docx 注释 / 最终提醒中列出。 - 照片处理:仅占位或用户上传真实 2寸照(35×45mm)。平台负责上传保存路径 → 传给脚本。绝不生成假照片或描述。
- 输出严格限制:只产出 .docx(可编辑主件) + PDF(用户从 Word/WPS 自行 Export)。绝不产出 HTML/MD 作为投递版本。recs 作为单独文件或 docx 末尾可删除章节。
- Job recs 仅 post-gen 追加:基于表单数据(major/skills/internships/awards)规则派生(见 references/job-recommendations.md)。不编造公司开放时间,不保证 offer。
- Refine 必须经用户确认:单节编辑后重新 export,新 draft 覆盖或新 version。保留 provenance 链。
- Preflight 现在大多自动:模板/布局/主题/语言 在 preferences 表单一步选;长度默认 1 页 A4(应届生铁律);不再强制 3 轮追问。
- 鼓励 + 真实并重:向导全程引用 freshgrad-guidance.md 鼓励文案 + “什么算经历” checklist。用户诚实填写是底线。
- User Layer 保护:draft.json、产出文件、用户上传 photo 永不被 skill 自动修改(除非用户显式 refine/export)。
- 平台契约:宿主必须支持 popup 表单渲染 + file upload + fs 路径传参 + 读取 result.json 展示文件/推荐。
完整 provenance / 审计精神 见 references/provenance-rules.md(保留兼容) + DATA_CONTRACT.md 更新版。
四、Work Buddy 平台适配说明(宿主必须实现)
4.1 表单弹出(“弹出输入框”)
- SKILL 触发
generate 后,不要直接聊天收集,而是按 references/freshgrad-form-schemas.md 顺序请求宿主弹出对应 form_id 的 modal。 - 宿主渲染字段、repeatable groups、file picker(photo)、帮助文案(包含 encouragement + guidance 片段)。
- 用户“提交”一节 → 平台暂存 → 继续下一弹窗。
- 最后 preferences 提交 → 平台写
draft.json(顶层结构见 form-schemas 末尾示例)到 workspace 临时区 → 调用 skill 脚本/后端 export_freshgrad.py --draft draft.json --photo 。
4.2 文件(照片)上传
- form 中
photo 字段 type=file → 宿主原生文件选择器(accept image/jpeg,png)。 - 上传后宿主必须把文件保存到可被 python 脚本访问的绝对/相对 fs 路径(推荐
/tmp/workbuddy-uploads//photo-xxx.jpg 或 workspace 下的 uploads/)。 - 路径传给 export 脚本
--photo 参数。脚本负责嵌入或保留占位。 - 不支持时 → 优雅降级为漂亮占位框 + 提示用户“稍后在 Word 中替换”。
4.3 文件系统输出期望
- 默认输出目录:
/freshgrad-output/(或兼容 resume-output/)。 - 每次 generate/refine/export 产出:
_应届生简历___.docx<...>_求职推荐.md<...>_recommendations.jsonresult.json(见下)- 宿主应在 UI 中列出这些文件,提供“打开文件夹”、“用 Word 打开”、“复制路径”等操作。
- 用户可手动把 .docx 复制到别处;skill 绝不写 User Layer 其他位置。
4.4 result.json 简化契约(wizard 版,结构化 draft 是真相)
{
"schema_version": "freshgrad-wizard-1.0",
"mode": "generate" | "refine" | "export",
"draft": { /* 完整表单结构化数据,source of truth */ },
"files": {
"docx": "full/path/to/xxx.docx",
"recommendations_md": "...",
"recommendations_json": "..."
},
"recommendations": [ /* 数组,UI 直接渲染卡片 */ ],
"photo_status": "placeholder" | "embedded",
"provenance": "form_structured_direct",
"anti_hallucination": "All facts from popup forms. Template filler only.",
"generated_at": "ISO",
"theme": "...",
"layout": "..."
}
宿主必须:
- 展示 docx 路径(或直接触发打开)。
- 漂亮渲染 recommendations(岗位、为什么匹配、平台列表、可复制关键词)。
- 提示用户后续动作(替换照片、占位符、导出 PDF、用 recs 关键词搜职位)。
- refine 后更新 draft 并产出新 result(可保留历史 version 或简单 overwrite)。
4.5 其他平台注意
- 严格只支持 docx/pdf 输出。用户请求“帮我生成 HTML 网页版”或“做成炫酷 PDF 带图标” → 回复“本向导专注可编辑 .docx + 用户自转 PDF,视觉模板请用外部工具”。
- 支持后台/异步:表单收集可分步,生成脚本可能需要几秒(python-docx 很快)。
- 错误处理:表单验证失败(缺必填)→ 弹窗提示 + 回到对应节;脚本失败 → 清晰错误 + “检查 python-docx 是否装好”。
- 多语言:默认 zh,en/both 在 preferences 里选(脚本会适配 header 等)。
五、输出规则(严格)
- 主交付:可编辑 .docx(python-docx,4 主题 × 3 布局,标准中文标题,照片占位,线性 ATS 友好)。
- 附加:求职推荐(md + json)。
- 用户动作后:从 Word 导出 PDF 作为投递版。
- 绝不:直接给用户“这是最终 PDF”(除非宿主额外集成 wkhtmltopdf/pandoc);不产出 creative MD 作为主件;不编造任何事实进入 docx。
六、快速测试 / 验证
见本文末 + README_refactor.md(新增)中的高阶测试计划与模拟 happy path。
八、关于本向导
本向导专为中国应届毕业生设计,强调结构化表单输入 + 模板化专业输出 + 强事实溯源。所有内容均基于用户直接填写的数据生成,鼓励诚实呈现校园与实践经历,并提供实用投递指导与安全提醒。
作者:基于 Work Buddy 技能框架独立实现(2026 版)
祝每位 2026 届毕业生求职顺利、offer 多多!