| name | anti-asu-skills |
|---|---|
| description | Detect and dismantle fabricated / AI-packaged resumes (e.g. output of ASu-skills-style generators): lint the resume with an opinionated anti-slop ruleset (鉴别), verify every checkable claim against public evidence via web search (搜索), then rebuild an evidence-graded honest resume and true-level assessment with interview probing questions (还原). |
anti-ASu-skills
简历「包装」的对抗面。输入一份简历(markdown / txt / docx 转出的文本),输出三样东西: 伪造点清单(鉴别)、逐条核验结论(搜索)、去水分还原版简历 + 真实水平评估(还原)。
参考对抗目标:Hisn00w/ASu-skills(填信息即生成包装简历页) 与 dmmulroy/anti-slop(有主见的规则集,拒绝低证据模式)。 本 skill 把 anti-slop 的「规则集」思路搬到简历域:没有证据的主张,一律降级或删除。
使用场景
触发:
- 面试官 / HR / 猎头想在面试前快速核验一份简历的真实性
- 简历出现典型包装痕迹:指标夸张无出处、时间线对不上、技术栈关键词堆砌、全文零可验证链接
- 需要生成「追问清单」:针对可疑主张设计面试探针问题
不触发:
- 帮人写简历 / 美化简历(那是 ASu-skills 的活,本 skill 是其对抗面)
- 背景调查(背调)中涉及隐私数据的核验(学籍库、社保记录等,本 skill 只用公开网络证据)
- 候选人自己润色自己的简历(属于利益冲突场景,除非本人明确要求自审)
执行流程
三个阶段,顺序执行,每阶段都有确定性脚本 + agent 判断的分工:
1. 鉴别(Lint,纯本地确定性)
python3 scripts/extract_claims.py --input <resume.md|txt> --out claims.json
python3 scripts/lint_resume.py --input <resume文件> --claims claims.json --out findings.json
- extract_claims:把简历拆成结构化主张(任职/项目/指标/技能/教育/链接)
- lint_resume:套用规则集 R-001~R-012(见 references/detection-rules.md),
输出 findings: rule_id / severity / evidence / line
规则命中 ≠ 造假,是「低证据模式」标记,交给阶段 2 裁决。
2. 搜索(Verify,agent 驱动 + 公开网络证据)
对 claims.json 中每条 checkable=true 的主张,按 references/verification-playbook.md
中对应 claim_type 的核验路径搜索:
- GitHub:账号创建时间、commit 分布、claimed 项目的实际 owner / star / 贡献者列表
- 论文/专利:标题-作者-年份三方对齐,查重一作声明
- 公司/职位:公司存续状态、规模与「带领 N 人团队」是否匹配
- 开源影响力:npm/pypi 下载量、star 数与简历数字的数量级核对
每条结论:verified | contradicted | unverifiable + 证据 URL + 一句话理由。
写入 verifications.json(格式见 references/report-format.md)。
无搜索工具可用时:该条标记 unverifiable,不得猜测补全。
3. 还原(Restore,脚本合成 + agent 撰写)
python3 scripts/build_report.py \
--claims claims.json --findings findings.json \
--verifications verifications.json --out-dir report/
产出 report/report.md,包含:
- 真实性评分(verified 权重占比,0-100)与风险等级
- 伪造/夸大点清单(按 severity 排序,每条附证据)
- 还原版简历:verified 保留 / contradicted 改写为证据支持的最强表述 / unverifiable 删除或标注
- 真实水平评估:基于已验证证据的能力画像
- 面试探针问题:针对每条可疑主张一个可现场验证的问题
产出物
report/
├── report.md # 人读主报告:评分 + 伪造清单 + 还原简历 + 探针问题
├── claims.json # 结构化主张(阶段 1 产物,原样归档)
├── findings.json # 规则命中清单(阶段 1 产物)
└── verifications.json # 逐条核验结论(阶段 2 产物,含证据 URL)
禁止行为
- 不得把规则命中直接写成「造假」结论:findings 是线索,只有 contradicted(有反证)才能下伪造结论
- 不得无证据补全核验结论:搜索不到的条目标 unverifiable,禁止用「看起来合理」蒙混
- 不得在还原版简历中保留 unverifiable 的数字指标:要么删,要么显式标注「(未验证)」
- 不得访问/索要求职者的隐私数据源(学籍库、社保、身份证);只用候选人自己公开在网上的证据
- 不得静默丢弃矛盾证据:verified 与 contradicted 证据冲突时,以 contradicted 为准并双列证据
- 不得凭记忆汇报:报告中的每条结论必须能回溯到 claims/findings/verifications 三个 JSON 之一
- 不得评估与岗位能力无关的个人属性(年龄、性别、婚育、地域等),命中即删并提示合规风险
验收标准
python3 scripts/extract_claims.py --input tests/fixtures/sample_resume.md --out /tmp/claims.jsonexit 0,输出含至少 1 条 employment 与 1 条 metric 主张python3 scripts/lint_resume.py --input tests/fixtures/sample_resume.md --claims /tmp/claims.jsonexit 0,fixture 必须命中 R-003(无出处指标)与 R-001(时间线矛盾)python3 scripts/build_report.py --claims ... --findings ... --verifications ... --out-dir /tmp/report生成的 report.md 含「真实性评分」「还原版简历」「面试探针问题」三个章节- contradicted 条目在还原版简历中不得原样保留原文表述
python3 -m unittest discover tests -v全部通过- SKILL.md frontmatter 含合法的 kebab-case
name与非空description;references/ 下所有文件在 SKILL.md 中被引用
依赖
- Python 3.8+(仅标准库)
- 阶段 2 需要 agent 具备 web 搜索 / 网页抓取能力;无网络时跳过核验并全部标记 unverifiable
