<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
考勤核验与统计报表生成 Skill
一、能力边界(一页纸速查卡)
1.1 能做什么
| 序号 | 能力项 | 说明 |
|------|--------|------|
| 1 | 文件读取 | 支持 .xlsx、.xls、.csv 格式的考勤原始文件 |
| 2 | 数据清洗 | 自动去除空行、合并重复记录、统一时间格式 |
| 3 | 班次配置 | 支持默认班次(09:00-18:00)或自定义排班表 |
| 4 | 异常核验 | 标记迟到、早退、缺卡、加班超时等异常类型 |
| 5 | 统计汇总 | 按人员聚合出勤天数、总工时、异常次数 |
| 6 | 报表输出 | 生成包含 4 个固定 Sheet 的 .xlsx 文件 |
1.2 不能做什么
| 序号 | 限制项 | 说明 | |------|--------|------| | 1 | 不处理图片/PDF | 仅接受表格类文件,扫描件需先转文字 | | 2 | 不推断请假类型 | 病假/事假/年假需在源数据中标注 | | 3 | 不修改原始文件 | 所有操作在副本上进行,原文件只读 | | 4 | 不处理跨月数据 | 单次调用仅处理一个自然月的数据 | | 5 | 不提供法律建议 | 工时合规性判断需结合当地法规 |
1.3 适用对象
- 中小企业 HR 专员
- 部门行政助理
- 需要快速核对考勤数据的团队负责人
- 个人自由职业者(记录自己的工时)
二、触发方式
2.1 触发词
直接使用以下任一短语即可激活本 Skill:
考勤打卡记录排班表出勤统计工时核算签到数据迟到早退
2.2 场景映射表
| 用户说(大白话) | 本 Skill 执行动作 | |------------------|-------------------| | "帮我看看这个月考勤" | 读取文件 → 清洗 → 核验 → 输出报表 | | "这几个人谁迟到了?" | 按人员标记迟到记录并汇总 | | "这个月总工时多少?" | 按人员聚合工时并输出统计 | | "排班和打卡对不上" | 比对排班表与打卡记录,标记差异 | | "导出个考勤报表" | 生成 4-Sheet 标准 Excel 文件 |
三、标准流程
3.1 前置条件
| 条件 | 要求 | 检查方式 |
|------|------|----------|
| 文件路径 | 本地可访问的绝对路径或相对路径 | 确认文件存在且可读 |
| 文件格式 | .xlsx / .xls / .csv | 检查扩展名 |
| 数据字段 | 至少包含:人员姓名、日期、打卡时间 | 读取表头确认 |
| 排班表(可选) | 包含:人员姓名、日期、上班时间、下班时间 | 如无则使用默认班次 |
3.2 执行步骤
步骤 1:接收文件路径
确认用户提供的文件路径有效,检查文件格式是否符合要求。
输入示例:
文件路径:/data/attendance/2026-07.xlsx
步骤 2:数据读取与清洗
读取文件后执行以下清洗规则:
| 清洗规则 | 操作说明 |
|----------|----------|
| 空行移除 | 删除全字段为空的行 |
| 重复去重 | 同一人员+同一日期+同一打卡时间仅保留一条 |
| 时间格式化 | 统一为 YYYY-MM-DD HH:MM:SS 格式 |
| 非法值标记 | 时间字段无法解析时标记为 [需核实:时间格式] |
步骤 3:班次确认
向用户确认班次设置:
默认班次:09:00 - 18:00(午休 12:00-13:00 不计入工时)
是否使用默认班次?或提供排班表文件路径?
- 若使用默认班次,直接进入下一步
- 若提供排班表,读取并匹配人员+日期的班次信息
步骤 4:异常核验
逐条比对打卡时间与班次规则,标记以下异常类型:
| 异常代码 | 异常类型 | 判定规则 |
|----------|----------|----------|
| LATE | 迟到 | 上班打卡时间晚于班次开始时间 + 宽限 5 分钟 |
| EARLY | 早退 | 下班打卡时间早于班次结束时间 - 宽限 5 分钟 |
| MISSING | 缺卡 | 应有打卡记录但实际缺失(上班或下班) |
| OVERTIME | 超时 | 单日工时超过 10 小时 |
| NEGATIVE | 工时倒挂 | 下班时间早于上班时间(跨天未标注) |
步骤 5:统计汇总
按人员聚合以下指标:
| 统计字段 | 计算方式 |
|----------|----------|
| 应出勤天数 | 排班表中有排班的天数(无排班表则按工作日计算) |
| 实际出勤天数 | 有完整上下班打卡记录的天数 |
| 迟到次数 | 标记为 LATE 的记录数 |
| 早退次数 | 标记为 EARLY 的记录数 |
| 缺卡次数 | 标记为 MISSING 的记录数 |
| 总工时 | 所有有效工作日的工时总和(扣除午休) |
| 平均每日工时 | 总工时 ÷ 实际出勤天数 |
步骤 6:生成输出文件
输出 .xlsx 文件,包含 4 个固定 Sheet:
| Sheet 名称 | 内容说明 | |------------|----------| | 原始数据 | 清洗后的完整打卡记录 | | 异常记录 | 所有标记为异常的行,含异常类型和说明 | | 统计汇总 | 按人员聚合的统计表 | | 核验日志 | 清洗和核验过程的日志记录 |
3.3 输出规范
输出文件命名规则:考勤报表_YYYYMM_生成时间.xlsx
示例:考勤报表_202607_20260812143000.xlsx
四、置信度门控
4.1 信息不足处理
当遇到以下情况时,输出 [需核实:字段] 占位符,不进行猜测:
| 场景 | 占位符示例 |
|------|------------|
| 时间格式无法解析 | [需核实:时间格式] |
| 人员姓名缺失 | [需核实:人员姓名] |
| 排班表日期缺失 | [需核实:排班日期] |
| 打卡记录缺失上下班标识 | [需核实:打卡类型] |
4.2 禁止编造规则
- 不推测缺失的打卡时间
- 不假设人员的排班规则
- 不计算无法确认的工时数据
五、错误码体系
| 错误码 | 错误描述 | 提示话术 | 修正步骤 |
|--------|----------|----------|----------|
| E001 | 文件不存在 | "未找到指定文件,请确认路径是否正确" | 检查路径,重新输入 |
| E002 | 格式不支持 | "仅支持 .xlsx/.xls/.csv 格式" | 转换文件格式后重试 |
| E003 | 缺少必要字段 | "文件中缺少人员姓名、日期或打卡时间字段" | 补充字段后重试 |
| E004 | 时间解析失败 | "存在无法解析的时间格式,已标记占位符" | 检查原始数据,修正格式 |
| E005 | 排班表不匹配 | "排班表中人员或日期与打卡记录不一致" | 核对排班表数据 |
| E006 | 输出目录不可写 | "无法写入输出文件,请检查目录权限" | 更换输出目录 |
六、FAQ 反模式
6.1 常见坑
| 坑编号 | 常见错误 | 反模式对照(正确做法) |
|--------|----------|------------------------|
| 1 | 直接处理含合并单元格的文件 | 先取消合并单元格,确保每行独立 |
| 2 | 忽略午休时间计算工时 | 默认扣除 12:00-13:00 午休,除非排班表另有说明 |
| 3 | 将跨天打卡视为异常 | 若下班时间早于上班时间,检查是否跨天并标记 NEGATIVE |
| 4 | 重复运行导致数据叠加 | 每次运行独立处理,不依赖历史输出 |
| 5 | 使用中文表头但未告知 | 需提前确认表头语言,或自动识别常见中英文表头 |
6.2 反模式对照表
| 反模式 | 问题 | 正确做法 | |--------|------|----------| | "帮我处理所有月份的考勤" | 单次调用仅处理一个月 | 按月分批处理 | | "这个数据肯定没问题" | 数据可能存在隐藏异常 | 先运行核验,查看异常记录 | | "直接给我最终结果" | 跳过核验可能遗漏错误 | 先看「异常记录」Sheet 再核对「统计汇总」 |
七、渐进式披露
7.1 速查卡(30 秒上手)
1. 说"帮我处理考勤"
2. 提供文件路径
3. 确认班次(默认 09:00-18:00)
4. 获取输出 Excel(4 个 Sheet)
5. 先看「异常记录」Sheet,再核对「统计汇总」
7.2 新手阅读路径
- 阅读「能力边界」了解工具范围
- 按「标准流程」逐步操作
- 遇到问题查「错误码体系」
7.3 进阶阅读路径
- 深入理解「异常核验」规则,自定义宽限时间
- 使用「排班表」功能处理多班次场景
- 结合「统计汇总」数据做月度趋势分析
八、参数配置表
| 参数名 | 默认值 | 说明 | 可配置范围 |
|--------|--------|------|------------|
| default_start | 09:00 | 默认上班时间 | 00:00-23:59 |
| default_end | 18:00 | 默认下班时间 | 00:00-23:59 |
| grace_minutes | 5 | 迟到/早退宽限分钟数 | 0-30 |
| lunch_start | 12:00 | 午休开始时间 | 11:00-14:00 |
| lunch_end | 13:00 | 午休结束时间 | 12:00-15:00 |
| overtime_threshold | 10 | 单日超时阈值(小时) | 8-16 |
九、数据安全与合规
- 数据安全:使用者应确保输入数据不包含敏感个人信息或已获得必要的合规授权。本 Skill 不承担数据泄露或不当使用的责任。
- 禁止反向工程:使用者不得对本 Skill 进行反向工程、反编译、破解或试图提取底层算法。
- 无担保声明:本 Skill 按"现状"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权保证。
- 免责范围:因使用或无法使用本 Skill 而导致的任何直接、间接、偶然、特殊或后果性损害,本 Skill 作者不承担任何责任。
十、用户协议
<!-- user-agreement-injected -->生效日期:2026 年 8 月 12 日
1. 责任承担
使用者自行承担使用本 Skill 的全部责任。包括但不限于:
- 输入数据的准确性、完整性和合法性
- 输出结果的解释、应用和决策
- 因使用本 Skill 产生的任何直接或间接后果
2. 禁止反向工程
使用者不得对本 Skill 进行反向工程、反编译、破解或试图提取底层算法。不得复制、修改、分发本 Skill 的源代码或核心逻辑。
3. 数据合规
使用者应确保输入数据不包含敏感个人信息或已获得必要的合规授权。本 Skill 不承担数据泄露或不当使用的责任。
4. 免责声明
本 Skill 按"现状"提供,不附带任何明示或暗示的担保。因使用或无法使用本 Skill 而导致的任何损害,本 Skill 作者不承担任何责任。
十一、许可证(License)
<!-- professional-license-embedded -->MIT License
Copyright (c) 2026 原创作者(自持版权)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
附录:示例代码(Python 伪代码)
# 以下为 Skill 核心逻辑的简化示例,用于说明处理流程
def process_attendance(file_path, schedule_path=None):
# 1. 读取文件
data = read_file(file_path)
# 2. 清洗数据
cleaned = clean_data(data)
# 3. 确认班次
schedule = load_schedule(schedule_path) if schedule_path else default_schedule()
# 4. 异常核验
anomalies = validate_attendance(cleaned, schedule)
# 5. 统计汇总
summary = aggregate_stats(cleaned, anomalies)
# 6. 生成输出
output_file = generate_excel(cleaned, anomalies, summary)
return output_file
本 Skill 文档由 AI 辅助生成,仅供参考。使用前请阅读相关文档并确认适用性。
微信扫一扫