taojianmin 6437d6e414
All checks were successful
技能自动化发布 / release (push) Successful in 7s
v1.1.6: 按 skill-template human_verification 设计模式重构 RPA
按 skill-template examples/real_browser_rpa 设计模式重构 platform_collector,
把 v1.1.5 修复的硬编码等待时间统一抽到 constants.py,并补上手工登录 fallback
和结构化错误码。

核心改动:
- constants.py 新增 24 个 RPA 常量(HUMAN_WAIT_TIMEOUT=180 / HUMAN_POLL_INTERVAL=2.0 /
  DEFAULT_PAGE_TIMEOUT_MS=15s / GOTO_TIMEOUT_MS=60s / SPA_LOGIN_* / TABLE_* /
  SIDEBAR_LINK_TIMEOUT_MS 等),与 skill-template human_verification 同名常量对齐
- platform_collector 重构:
  * 新增 RPAError / LoginTimeoutError (ERROR:LOGIN_TIMEOUT) /
    MissingBrowserError (ERROR:MISSING_BROWSER) / TableNotFoundError (ERROR:TABLE_NOT_FOUND)
  * 新增 _is_logged_in / _wait_for_manual_login(轮询 + 180s 兜底,与
    skill-template task_rpa.py::_ensure_logged_in 对齐)
  * _fill_spa_login 自动 fill 失败时 → 自动 fallback _wait_for_manual_login
    (仅 --show-browser 模式;headless 模式抛 LoginTimeoutError 退出码 2)
  * 所有 wait_for_timeout / wait_for_selector timeout 替换为常量
  * collect_all() 加 human_wait_timeout 参数(CLI 透传)
  * page.set_default_timeout(DEFAULT_PAGE_TIMEOUT_MS) 覆盖 Playwright 默认 15s
- app.py cmd_collect_platform:
  * 捕获 RPAError → JSON 输出 {error: e.code, detail: ...} + exit 2
  * 新增 --human-wait-timeout N flag
- requirements.txt:删除违规的 playwright>=1.40.0(playwright 由宿主 jiangchang_skill_core
  runtime 提供,文件顶部注释已声明)
- .env.example:新增 HUMAN_WAIT_TIMEOUT / RPA_PAGE_TIMEOUT_MS / RPA_GOTO_TIMEOUT_MS
  覆盖项
- tests/run_tests.py:新增 7 个 platform_collector 纯函数测试
  (_gen_contract_id × 2 / _normalize_date × 2 / _parse_days × 2 / _parse_alert)
- SKILL.md version 1.1.5 → 1.1.6;CHANGELOG.md 加 1.1.6 条目

测试:28/28 通过(21 原有 + 7 新增)
POLICY-RELEASE-001:SKILL.md=1.1.6 == CHANGELOG=1.1.6 == SKILL_VERSION=1.1.6

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-14 17:29:08 +08:00

description
description
每日凌晨扫描全校教职工合同电子台账,对距离到期日 90/60/30 天的合同分级预警,自动生成个人版续聘任务书和单位版本月到期清单。

合同到期智能预警与续聘辅助

每日凌晨自动扫描全校教职工合同电子台账,对距离到期日 90 天 / 60 天 / 30 天的合同分别给黄 / 橙 / 红三级预警,自动生成《续聘准备任务书》推给教师本人,把《本月合同到期人员清单及续聘建议》推给二级单位人事秘书,把劳动纠纷和年终突击签合同彻底挡在门外。


这个技能能帮你做什么

  • 每日凌晨自动扫描:无需人工介入,按合同到期日距今 90/60/30 天分别给出黄/橙/红三级预警
  • 自动预填续聘考核表:根据该教师近 3 年年度考核结果和师德师风考评,自动生成「近三年工作业绩摘要」
  • AI 建议续聘意见:依据考核结果(优秀/称职/基本称职/不称职),给出续聘 / 续聘观察 / 不续聘的建议,并附理由(如「连续两年考核排名后 10%」)
  • 双轨派发:个人版《续聘准备任务书》发给教师本人;单位版《本月合同到期人员清单》发给二级单位人事秘书
  • 红头预警自动抄送:30 天红色紧急提醒自动抄送分管校领导

适合什么场景

  • 人事处合同管理员想从「年底集中突击签合同」转向「全年前置预警」
  • 二级单位人事秘书每月初就想知道本月谁需要办续聘、还差什么材料
  • 教师本人提前 90 天就知道合同什么时候到期、需要准备什么材料
  • 分管校领导 30 天内必须知道谁有合同逾期风险

使用前需要准备什么

  • 合同电子台账数据已与人事系统同步(合同类型、起止日期、聘任岗位、试用期)
  • 该教师近 3 年年度考核结果可由党委教师工作部系统接口获取
  • 师德师风考评记录可由党委教师工作部系统接口获取
  • 二级单位人事秘书通讯录已登记到本技能 .env
  • (v1.1.1)首次启用 SmartCampus HR 平台采集:运行 playwright install chromium 下载浏览器;用 python scripts/main.py collect-from-platform --show-browser 弹出浏览器手工登录一次保存 cookie

怎么使用

本技能支持数据管理(合同台账表上点工具栏按钮)、对话任务(自然语言让 Agent 完成)、定时任务(每日凌晨 02:00 自动扫描)。三种入口触发同一套业务能力。

逐步操作与排障,请查看技能市场「使用教程」Tab。


执行后你会得到什么

  • 个人版《续聘准备任务书》:发给教师本人,含合同基本信息、近三年业绩摘要、续聘建议、所需材料清单、截止时间
  • 单位版《本月合同到期人员清单及续聘建议》:发给二级单位人事秘书,含本月全部到期 / 即将到期人员名单、AI 续聘建议、任务派发状态
  • 预警提醒:90 天黄色 / 60 天橙色 / 30 天红色,三档分级
  • 任务派发日志:每一条预警的派发状态、接收人、是否已读

注意事项

  • 本技能不替代人事处终审,续聘 / 不续聘的最终决定权仍由人事处与分管校领导行使
  • 涉及劳动合同解除 / 不续聘的处分性决定仍须走线下流程,技能仅给出 AI 建议
  • 考核结果、师德师风数据延迟同步可能导致预警等级失真,建议每日扫描完成后人工核对一次
  • 30 天红色预警触发后,系统将自动抄送分管校领导,请勿手动屏蔽通知

常见问题

这个技能适合我吗?

如果你的工作包含「管理全校教职工劳动合同 + 每月办理续签」,本技能可以接管日常预警与材料预填。

教师本人能看到 AI 建议的续聘意见吗?

个人版《续聘准备任务书》默认不展示 AI 续聘建议,仅展示业绩摘要与所需材料;单位版《清单》才展示 AI 建议,避免给教师造成预判压力。

数据来源(考核、师德)延迟怎么办?

技能每日凌晨扫描时若发现考核数据缺失,会将该合同标记为「数据待补」并跳过预警;考核数据补齐后会自动重新触发。

试用期合同也在扫描范围内吗?

是。试用期合同同样按到期日距今 90/60/30 天分级预警;试用期考核不通过的处理建议由人事处另行判定。

Description
人事处 合同到期智能预警与续聘辅助 v1.1.0
Readme MIT 2.1 MiB
2026-09-14 16:01:20 +08:00
Languages
Python 92.9%
PowerShell 4.4%
Jinja 1.4%
HTML 1.3%