完全本地运行:引擎已经打包在本技能里(engine/ 目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
谁会在什么时候用:制造业 / 建筑业 / 物业 / 危化企业的安环部(安全员、培训管理员),
在三个固定节点上必须把这张表核一遍才能往下走:
为什么必须核(真实痛点):《安全生产法》要求新员工做三级安全教育、转岗与复工人员重新培训、
特种作业人员持证上岗、每年再教育学时达标,而且签到表、试卷 / 考核成绩、培训内容记录都要能查到。
检查时最常见的处罚情形正是「签到表上有名字、学时不够」「新员工没做三级教育就上岗」
「培训记录与出勤/工时对不上」—— 这些不是态度问题,而是台账上跨列的数字对不上。
一张几十人的培训表,人工核要小半天,还容易漏人、漏层级、漏补考记录。
这张表会逐项核对什么:培训记录的逐行算术(起止时间 → 学时 → 计划学时)、
每人年度累计学时与规定下限、应培训名单与签到名单的差集、同一人同主题同日期的重复登记、
考核成绩与合格线(含补考记录)、以及空白 / 占位符 / 时间与日期格式 / 负学时。
每条结论都带原文行号、原文数字与时间,可被第三方用同一口径复算;
材料不足时不给结论,会明确列出还缺哪几列。
结束时间 − 开始时间 得实际学时,再与「学时」「计划学时」两列比对,不等于就报出差额。学时等数值看不懂或为负,逐行点名,不会把看不懂的值当成 0。
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
入参就是一张表:把 Excel 里的表头 + 数据行一起复制成文本,放进 {"text": "…"}(Tab 分隔最稳)。
必需列(缺任何一列只会告诉你「材料不足、缺哪几列」,不会给结论):
姓名、部门/班组、岗位、培训类型、培训主题、培训日期、开始时间、结束时间、学时、计划学时、
是否签到、考核成绩、合格线、年度累计学时、规定下限。
可选列(填了就让对应核对更准):是否应培训、补考成绩、教育层级、特种作业证号(按掩码写,如 320101********1234)、
证件到期日、岗位应训主题、出勤时间段、备注。
算术上一眼能看出来,检查时就是「签到有、学时不够」。
一比对签到表就露馅;累计学时必须是实际完成并签到的学时。
三个层级在台账上断档;本版本只核表内数字,层级记录是否齐全要么补齐层级列、要么人工核。
空着算补考记录缺失,"及格"这类文字会被报数值无法解析,补考分数要填分数本身。
学时也算不出来;日期统一成 2026-03-02,时间统一成 08:30。
本免费版是完整可用的核心产出,本版本不包含下面这些项:
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
本免费版会在本包目录里记一个使用次数(scripts/.hint-count,一个整数,不含任何机器或用户信息)。
· 前 3 次:完全离线(不发生任何网络请求),输出与现在完全一样;
· 第 4 次起:服务端会返回一段完整档说明(完整档是另一个独立商品,条款与价格以它自己的商品页为准),届时才会打印这一行;
· 第 4 次起才会向服务端问一次(只发包标识与次数),拿回完整档说明;
· 请求不可用(离线/超时/被拦截)时什么都不做,核对结果与退出码不受任何影响;
· 不想要这次统计可以加 --no-stats(核对功能完全不受影响,只是拿不到完整档说明)。
本版本不包含的检查项见上一节;需要完整档时按服务端返回的官方口令执行,付款由用户本人确认。
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断:不判定培训是否真实发生、
不判定培训内容在专业上是否充分、不代替《安全生产法》与地方规定给出合规结论、
不读 .xlsx / .pdf 原件、核对过程不联网核验证书真伪。
材料不足时不给结论,也不会输出「未发现问题」;本版本未执行的检查项会如实列在结果里。
装到本地或在线用
· SkillHub(免费版):https://www.skillhub.cn/skills/user_ef162806/safety-training-record-check-free
· 全部免费工具:https://chenqg618.github.io/compliance-skills/
完整档(离线、无次数上限):SkillPay 买断 ¥9.9,跑多少次都不再收费;免费档与完整档的检查项差别见上面的说明。
怎么装:
https://chenqg618.github.io/compliance-skills/
免费版会明确列出哪些检查没有执行,不会让你以为已经全查过。