Back to skills
extension
Category: Data & AnalyticsNo API key required

阿拉丁·人事档案合规体检工坊

把散落各处的员工花名册归一成统一契约,十五条规则自动查出"身份证校验失败、疑似未成年、一号多人、工号重复、生日性别对不上、在职却填离职日期、日期倒挂、手机银行卡非法、合同证件临期、敏感信息明文"等主数据质量问题,输出体检驾驶舱与整改清单,把每次人员信息合规自查压到十分钟。

personAuthor: user_d18c97eahubcommunity

阿拉丁·人事档案合规体检工坊

员工花名册是 HR 一切工作的地基——考勤、薪酬、社保、合同、团险、福利全都建立在它之上。 可现实中这张表恰恰最脏:

身份证号填错一位,校验码对不上,后面所有用到身份证的系统全跟着错; 同一身份证号挂在两个人名下,冒用、重发、重复参保一个都跑不掉; 未成年没满 16 岁就出现在在册名单,用工红线直接踩穿; 生日写的和身份证对不上、性别张冠李戴、在职的人却填了离职日期; 手机号非法、银行卡 Luhn 校验失败、合同下周就到期却没人跟进; 最危险的是——大量身份证、银行卡以完整明文躺在表里,一旦外发就是泄露。

本技能把散落的员工花名册归一成统一契约,自动回答每次人员信息自查都要被追问的四件事:

  1. 身份对不对?(身份证校验码、未成年、一号多人、工号重复)
  2. 字段准不准?(生日性别与身份证一致、关键字段缺失、手机银行卡合法)
  3. 状态真不真?(在职却填离职、入职晚于离职、合同证件临期)
  4. 敏感护没护?(身份证/银行卡是否仍以完整明文留存,需脱敏归档)

全程本地运行、纯 Python 标准库、不联网、不对接任何人资系统, 同样的输入必得同样的结论——出的报告可以直接进风控底稿与审计材料。

何时触发

  • 用户要做人事档案自查、员工主数据治理、HR 审计准备、迎检材料、数据质量盘点
  • 用户要迎接集团内控审计、上市尽调、劳动监察、数据安全核查,需要一份人员信息合规报告
  • 用户手上有员工花名册 / 入职登记表 / 人事信息表,想知道"哪些人信息有问题"
  • 用户问"身份证号对不对""怎么查花名册脏数据""未成年用工怎么识别""一号多人怎么发现""合同快到期怎么提醒""银行卡号校验"
  • 用户担心离职没清、信息对不上、敏感字段明文、合同证件临期
  • 用户提到 HR data quality、employee master data audit、personnel file compliance、roster audit、HR compliance

何时不触发

  • 用户要在线录入、走人资系统或 OA 流程——本技能只做事后稽核,不发起任何业务
  • 用户要联网核验身份证真伪、对接公安或社保系统查实时状态——本技能不联网,做不到
  • 用户要算薪、算社保、做合同——那是薪酬/社保/合同台账的活,本技能只管"人名信息合不合规"
  • 用户要做招聘、做绩效——本技能聚焦已存在人员主数据的质量体检,不涉及业务过程
  • 用户只是要一张空白花名册模板——本技能不产出表单模板

能力边界

能做:

  1. 把 CSV / TSV / JSON 的中文表头花名册归一成统一契约,中英列名别名自动识别
  2. 身份证 GB11643 校验码算法级校验、疑似未成年(<16 岁)识别、一号多人识别
  3. 银行卡 Luhn 校验、手机号/邮箱正则校验、性别/状态/学历归一
  4. 十五条规则稽核,区分 P0(立即处置)/ P1(本期整改)/ P2(建议关注)/ INFO(脱敏提示)四级
  5. 风险密度评分(加权扣分÷受检人数),小公司和大集团可横向比较
  6. 合同/证件到期与临期预警(默认 30/60/90 天三级)
  7. 输出 HTML 体检驾驶舱 + Markdown 整改清单 + Excel 可直接打开的 utf-8-sig CSV 脱敏台账

不能做:

  1. 不联网,不能核验身份证真伪或人员实时社保状态
  2. 不能代办入离职或改系统,只判断台账记录是否合规
  3. 不能读写入职系统/人资系统内部实际单据,判定依据台账登记值
  4. 不能修复源数据,只产出报告与整改建议;脱敏仅在报告中做,不动源文件
  5. 不修改源文件,不写回任何业务系统,只产出报告

输入输出规范

输入(花名册为必需,可多次传入自动合并去重):

| 文件 | 说明 | 缺失影响 | | --- | --- | --- | | 花名册 | 必需,CSV/TSV/JSON,含姓名/工号/身份证/入职/部门等 | 无法运行 | | 离职名单 | 可选,一行一个工号或姓名,可含离职日期 | 跳过 HF8 状态矛盾判定 | | --today 基准日 | 仅当用"今天"判定临期时需要锁定 | 临期天数随运行日漂移 | | --contract-th / --cert-th | 临期预警提前天数(默认 90/30 天) | 临期预警灵敏度 |

输出:

| 产物 | 说明 | | --- | --- | | roster_ir.json | 归一化中间表示,契约 aladin.roster-ir/v1 | | roster_audit.json | 稽核结论,契约 aladin.roster/v1,含评分、门禁、findings | | report.html | 自包含体检驾驶舱,双击即看,无外部依赖 | | report.md | 整改清单,带勾选框,可直接贴进周会纪要 | | report.csv | utf-8-sig 编码脱敏台账,Excel 双击不乱码,含风险标记列 |

工作流

Step 1:清洗归一

python scripts/roster_ingest.py 花名册.csv [花名册2.json ...] -o roster_ir.json

自动完成:中英列名别名映射(24 字段)、多种日期格式归一(2026年1月1日 / 20260101 / 2026/1/1)、 性别/状态/学历归一、GB18030 自适应解码、完全重复行去重。

Step 2:稽核判定

python scripts/roster_audit.py roster_ir.json -o roster_audit.json \
  [--today 2026-08-01] [--contract-th 90] [--cert-th 30]

阈值全部可调:--today 锁定基准日便于复现;--contract-th / --cert-th 控制合同/证件临期提前天数。

Step 3:出报告

python scripts/roster_report.py roster_ir.json roster_audit.json \
  --outdir report --prefix report

规则速览

| 编号 | 规则 | 默认级别 | | --- | --- | --- | | HF1 | 身份证校验码错误(GB11643) | P0 | | HF2 | 疑似未成年用工(<16 岁) | P0 | | HF3 | 身份证号重复(一号多人) | P0 | | HF4 | 工号重复 | P0 | | HF5 | 关键字段缺失(姓名/工号/身份证/入职/部门) | P1 | | HF6 | 生日与身份证不一致 | P1 | | HF7 | 性别与身份证不一致 | P1 | | HF8 | 状态与离职日期矛盾(在职却填离职) | P1 | | HF9 | 日期倒挂(入职晚于离职 / 早于出生) | P1 | | HF10 | 手机号非法 | P1 | | HF11 | 银行卡 Luhn 校验失败 | P1 | | HF12 | 合同/证件到期或临期 | P1 / P2 | | HF13 | 邮箱非法 | P2 | | HF14 | 手机号/银行卡重复 | P2 | | HF15 | 敏感信息完整明文(脱敏提示,不计分) | INFO |

评分与门禁:风险密度 = 加权扣分(P0×25 / P1×10 / P2×3,INFO 不计分)÷ 受检人数, 再折算成 100 分制。出现任意 P0 时总分封顶 74。 门禁三档:HEALTHY(零问题,可结案)/ WATCH(需跟进闭环)/ ALERT(触碰合规红线,须立即处置)。

复用资源

| 文件 | 用途 | 加载时机 | | --- | --- | --- | | references/audit-rules.md | HF1-HF15 逐条判定条件、合规要点、评分门禁说明 | 用户追问"为什么这条被判 P0""能不能放宽"时加载 | | references/data-contracts.md | 输入列名别名全表、IR 与稽核结论的 JSON 契约字段说明 | 用户要接自己的数据、或要二次开发下游脚本时加载 | | references/usage-examples.md | 完整场景示例 + 常见问题 + 最佳实践 | 用户第一次上手、或问"我这种情况怎么跑"时加载 |

与相邻台账的分工

同一批员工会在多张表里出现,各管一段,不要混:

  • 社保公积金台账管「法定五险一金缴没缴对」——本技能只管「人名信息本身对不对」
  • 合同台账管「合同到期续签」——本技能管「合同日期填没填错、临不临期」
  • 团险台账管「商业保险投没投」——判定前提是人员主数据干净,本技能先帮你把地基扫干净
  • 薪酬台账管「工资薪金计税」——本技能只管「人名/银行卡号是不是合法可打款」
  • 本技能管「身份对不对、字段准不准、状态真不真、敏感护没护」

重要约束

  • 不联网、不外发:全部计算在本机完成,花名册含姓名工号身份证银行卡,绝不上传(→ Trust)
  • 不修改源文件:只读输入,所有产物写到输出路径,原始台账保持原样(→ Trust)
  • 敏感自动脱敏:报告与 CSV 中的身份证/银行卡/手机对外展示一律脱敏(如 110101********4258),源文件不动(→ Trust)
  • 判定依据可追溯:每条 finding 都写明触发规则编号、具体数据和整改建议,不给"疑似有问题"这种无法落地的结论(→ Reliability)
  • 同样输入必得同样输出:不使用随机数与系统时间参与判定(基准日通过 --today 显式锁定),双跑产物逐字节一致(→ Reliability)
  • 缺档案自动降级:只给花名册也能出报告,缺失的离职名单对应规则明确跳过而不是瞎猜(→ Adaptability)
  • 阈值全部可调:各地标准与临期口径差异很大,警戒线交给用户设定而非写死(→ Adaptability)
  • 契约版本化aladin.roster-ir/v1aladin.roster/v1 显式校验,契约不匹配立即报错退出(→ Convention)
  • 报错即退出码 2:文件缺失、编码失败、表头不可识别、契约不符一律 exit 2,便于接进 CI 或批处理(→ Efficiency)

变更记录

  • 1.0.0 — 首个版本。HF1-HF15 人事档案十五条规则、风险密度评分、HTML 体检驾驶舱 / Markdown 整改清单 / CSV 脱敏台账三件套、CSV/TSV/JSON/GB18030 多格式输入、内置算法级样例生成、自带端到端自检。

出品:阿拉丁。本技能全程本地运行,不联网、不上传、不写回任何业务系统。