express-tracking 是快递邮寄跟踪与留痕技能,定位为寄件交割的证据链工具,流程为“登记 → 查询 → 留痕 → 回写”。数据真值位于 case.yaml 的邮寄跟踪节,由 case-progress 技能的 add-mialing / set-mailing 维护;轨迹 PDF 凭证落在案件的“08 - 🏛️ 法院送达/”目录。本技能是既有内部浏览器自动化参考实现中 express 查询模块在 ZCode + ego-browser 环境下的轻量复刻。
触发场景:寄件后用户给出下单截图、短信截图或运单照片时登记邮寄;在途时用户说“查一下快递”则查询轨迹出凭证;轨迹显示签收后回写状态与签收日期;用户说“刷新所有在途快递”时跨案件枚举在途单号批量查询。
使用方式:登记阶段,单号来源按优先级为截图/短信单号(模型直接看图提取)、用户口述、运单条码照片,通过 /usr/bin/python3 .claude/skills/case-progress/scripts/case_store.py add-mailing 命令登记,需指定短码、单号、承运商(ems|sf|other)、内装材料、寄件日期、寄件人、收件方与凭证相对路径;凭证图片先复制入 08 目录再登记。查询阶段先运行 scripts/ensure_chrome.sh 幂等确保 Chrome 工位,再用 node scripts/cdp_ems.js 的 status、query、text、pdf 子命令探测状态、填单查询、导出页面文本与生成水印 PDF。PDF 留痕在轨迹页完全加载后注入页眉水印(左侧当前时间,右侧页面 URL),再经 Page.printToPDF 导出 A4 PDF,命名为“YYMMDD 承运商轨迹 单号.pdf”。状态回写使用 set-mailing 指定 in_transit|signed|abnormal 与最新轨迹摘要,签收时补一条时间线事件。批量刷新时先遍历案件取出待处理单号,按承运商分组,EMS 每批不超过 20 单,顺丰逐单查询,逐单回写并列出需人工复核的单。
浏览器会话设计:使用持久 profile(~/.cache/express-tracking/chrome-profile),cookies 与存储落盘,登录 cookie 实测有效期一年,风控验证标记约七天;登录态以 cookie 为准而非页面 DOM;填单与点击需走 trusted 输入事件,避免被风控识别。查询走 CDP 直连真实 Chrome 窗口(9222 端口),窗口始终可见,登录与验证态可累积。
限制与边界:仅支持 ems、sf、other 三种承运商,other 只登记不查询;不自动扫码、不自动过验证码,遇到验证由用户在可见窗口中人工处理;不做后台定时监控,需手动触发;PDF 凭证是查询时点快照,不替代公证件。EMS 未登录可查但只显示最近 2 条轨迹,登录后完整。环境要求 node ≥22,case_store CLI 固定使用 /usr/bin/python3。