05
审核 · 异常

考勤异常审核

attendance-exception-review
🔎
审核与计算 skills/attendance/
接在 data-prep 之后,把资料来源和异常问题整理成可复核审核工作簿不直接生成最终备注,也不猜截图、审批结论或客户口径。

TRIGGERS

触发场景
data-prep 跑完,要做异常审核
要把缺卡/审批缺失/假别不明/夜班跨天/低置信度集中成清单
交付前要可复核的待追问和处理日志

INPUT & OUTPUT

输入 / 产出
↘ INPUT · 输入
  • attachments/ + reference_roster.xlsx
  • attendance_config.json(来自 rule-pack)
  • vision_extracted_records.jsonl
↗ OUTPUT · 产出
  • exception_review.xlsx 固定 5 sheet:来源清单 · 员工覆盖 · 异常清单 · 待追问 · 处理日志
🪜

STEPS

处理流程
  1. 1
    建来源清单
    逐文件登记来源类型、归属员工、解析状态、置信度。
  2. 2
    算员工覆盖
    roster 员工是否有资料、来源数;没来源 → missing_attendance_source
  3. 3
    出异常清单
    缺卡、审批缺失、假别不明、夜班跨天、视觉低置信度逐条列出。
  4. 4
    列待追问
    把无法可靠推导的问题写成面向人的确认项 + 建议动作。
  5. 5
    写处理日志
    规则、文件数、员工数、异常数、解析失败原因可与各 sheet 核对。

OUTPUTS

产物结构
来源清单
文件、来源类型、归属员工、解析状态、置信度。
员工覆盖
底表员工、是否有考勤资料、来源数、来源列表。
异常清单
缺卡、审批缺失、假别不明、夜班跨天、视觉低置信度等。
待追问
面向 HR/客户/员工的确认问题和建议动作。
处理日志
本次规则、文件数、员工数、异常数、解析失败原因。

PIPELINE

与其他 skill 衔接
上游 data-prep(A/D 型)或 source-normalizer(B 型)。
判异常用的口径来自 rule-pack 的 config。
终审后交给 remarks 算最终备注。

ACCEPTANCE

闭环验收

ANTI-PATTERNS

反例检查
图片/PDF/截图无视觉记录或人工记录,却被写成已解析。
来源清单显示解析失败,异常清单和处理日志却没有对应记录。
员工在 roster 中无资料,却没有 missing_attendance_source。
低置信度视觉记录没有进入待追问。

RUN

运行命令
RUN · 运行命令
uv run python skills/attendance/attendance-exception-review/scripts/build_exception_review.py \
  outputs/<目录名>/attachments <YYYYMM> \
  outputs/<目录名>/exception_review.xlsx \
  --source-dir data/raw/<目录名> \
  --reference-summary outputs/<目录名>/reference_roster.xlsx \
  --config <config.json>