Files
alert-contract-expiring-hr/CHANGELOG.md

81 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
本文件对应技能市场 **「更新日志」** Tab。
## 1.1.4
- **多平台发布声明**:SKILL.md `metadata.openclaw.brands` 新增 `jiangchang` + `huashang`,发布后同步挂匠厂主站与华商 OEM 市场。CI 会幂等补写 `skill_market_relations` 两行(**只补不删**)。
## 1.1.3
- **版本对齐修复**:v1.1.2 tag(commit `4af2b4f`)发布时 `SKILL.md version` / `scripts/util/constants.py SKILL_VERSION` 未同步升级(仍为 1.1.1),本次发布将 manifest 升至 1.1.3 并与代码现状对齐
- **内容同 v1.1.2**:sandbox 卡片采集功能(详见 1.1.2 条目)
> **说明**:v1.1.2 与 v1.1.3 实质内容相同(均含 sandbox 卡片采集)。v1.1.2 tag 视为已发布但 manifest 错位的历史遗留;v1.1.3 为首次 manifest 版本号与代码对齐的 release tag。
## 1.1.2
- **sandbox 卡片采集**:表格 10 列(工号/姓名/单位/岗位/合同类型/起止日期/剩余天数/预警/建议/材料包按钮),进入 hr/contracts 页面后 `page.reload()` 刷新触发 mock 数据加载
- **「续聘材料包」按钮行为**:不触发浏览器 download event,而是展开页面下方「续聘准备任务书」+「单位清单」卡片(含 checklist + 近三年考核表)。RPA 改为抓卡片 inner_text 存 `materials_content`(parse_method='sandbox_card')
- **卡片文本解析进 performance_records**:新增 `repository.parse_sandbox_card_performance`(双模式正则:行格式 `2024\t称职` + 叙述式 `2024年:等次「称职」`)+ `repository.upsert_performance_record`(等次→分数:优秀=90 称职=75 基本称职=60 不称职=30)
- **contract_id 改用工号**(稳定,不随姓名变化):`_gen_contract_id(emp_id, end_date)`
- **实测**(sandbox 3 合同):
| contract_id | 教师 | 解析 perf 条数 | AI 决策 |
|---|---|---|---|
| RPA-T20190033-20260415 | 钱实验 | 4 | observe |
| RPA-T20200055-20260630 | 孙助理 | 6 | observe |
| RPA-T20180021-20260831 | 王明远 | 6 | observe |
## 1.1.1
- **AI 续聘建议升级**:本地规则版 → LLM 优先 + 规则降级
- 新增 `scripts/service/llm_decision.py`:调宿主 `jiangchang_skill_core.llm_manager.call_llm_json`(prompt 含教师信息 + 业绩 + 材料文本摘要),输出 `decision_source ∈ {llm, rules, rules_no_materials}`
- `scripts/service/task_generator.py`:AI 决策统一改为调 `llm_decision.decide_suggestion`;降级版 reason 文案加「已结合材料包(含 X 个文件,Y 字内容)」前缀
- **SmartCampus HR 平台 RPA 采集(新增)**
- 新增 `scripts/service/platform_collector.py`:Playwright 持久化 browser profile 复用登录态 → 抓合同表(姓名/单位/到期日/剩余天数/预警/建议) → 点"续聘材料包"按钮下载 PDF/Word → 落库
- 平台:`https://sandbox.jc2009.com/industries/campus/smartcampus/app/hr/contracts`
- 新增 CLI `collect-from-platform [--limit N] [--show-browser]`
- **当前 sandbox mock 未部署「续聘材料包」按钮**,RPA 仅采集 6 列台账;材料下载代码已就绪,sandbox 补按钮后自动生效
- 实测:headless 模式 + profile cookie 复用,抓 3 行合同(钱实验/孙助理/王明远)→ 落 `contracts` 表
- **材料包 PDF/Word 文本提取(新增)**
- 新增 `scripts/service/material_parser.py`:pypdf → pdf2image + pytesseract OCR(扫描件兜底);python-docx 抽 docx;antiword 兜底 .doc
- 新增 CLI `parse-materials [--contract-id C001]`
- **数据模型扩展**
- 新增表 `materials_content`(contract_id / file_name / file_path / extracted_text / parse_method / parsed_at)
- `renewal_tasks` 加列:`decision_source` / `materials_summary`
- 新增 `scripts/db/migrations.py`:idempotent ALTER/CREATE,`init-db` 自动应用
- **HTML 任务书升级**
- `scripts/templates/task.html.j2` footer 加 "AI 建议来源:{{DECISION_SOURCE}} · 已审阅材料 {{MATERIALS_COUNT}} 份"
- `scripts/service/html_renderer.py` 模板 ctx 加 `DECISION_SOURCE` / `MATERIALS_COUNT`
- **CLI 列表**:v1.1.0 的 9 个 + 2 个新增 = **11 个**
- 新增:`collect-from-platform` / `parse-materials`
- **依赖新增**(`requirements.txt`):playwright / pypdf / python-docx / pdf2image / pytesseract / Pillow
- **`.env.example` 新增项**:SMARTCAMPUS_BASE_URL / SMARTCAMPUS_PROFILE_DIR / MATERIALS_DOWNLOAD_DIR / OCR_LANG / LLM_MODEL_NAME
- **SKILL.md**:version 1.1.0 → 1.1.1;用户意图路由表加 2 行;加「数据来源」段说明三层来源 + AI 决策来源透明化
## 1.1.0
- 实现核心业务逻辑(9 个 CLI 命令全部可运行)
- 新增 `scripts/cli/app.py`:argparse 子命令分发
- 新增 `scripts/util/{constants,date_util,runtime_paths,logging_setup}.py`
- 新增 `scripts/db/{connection,seed_data,repository}.py`:SQLite + 5 张表 + 50 份样例合同 + 150 条业绩记录
- 新增 `scripts/service/scanner.py`:扫描核心(90/60/30 三级预警 + 写 alerts + 生成任务)
- 新增 `scripts/service/task_generator.py`:规则版 AI 续聘建议(师德/考核/趋势三规则)
- 新增 `scripts/service/dispatcher.py`:按单位/月份派发 payload(dry-run 模式)
- 新增 `scripts/service/html_renderer.py`:Jinja2 任务书 HTML 渲染(无 jinja2 时降级到 str.replace)
- 新增 `scripts/templates/task.html.j2`:任务书模板(基于 assets/html/example-report.html)
- 新增 `examples/{contracts_sample,performance_sample}.csv`:本地样例数据
- `scripts/main.py`:重写为降级模式(jiangchang_skill_core 可选)
- `.env.example`:新增 `DB_PATH` / `HTML_OUTPUT_DIR` / `JIANGCHANG_DATA_DIR`
- 验收:本地 `python scripts/main.py <cmd>` 9 个命令全部 exit code = 0
## 1.0.1
- 初版:基于匠厂 skill-template 主仓 v1.0.108 派生
- 实现核心业务:合同到期智能预警与续聘辅助(每日定时扫描 + 三级预警 + 个人版任务书 + 单位版清单 + 自动抄送)
- 输出形态:合同台账表状态更新 + 预警记录表 + 个人版 HTML 任务书 + 单位版 PDF 清单 + 派发日志
- 预期提效:因合同逾期未续签导致的劳动纠纷降为 0;人事处年终集中突击签合同的工作量减少 60%
- 业务行生命周期:可预警 → 预警中 → 已续签 / 已驳回 / 已过期
- 占位说明:本版仅完成骨架与文档,业务实现细节(`scripts/` 下 Python 模块、人事系统 API 对接、定时调度)由开发者后续按 `development/REQUIREMENTS.md` 补全