Files
hermes-skills/skills/legal/contract-reviewer/references/workflow-monitoring-pitfalls-20260615.md

2.2 KiB

Workflow Monitoring Pitfalls — 2026-06-15

auto_notify脚本挂掉不自知

  • auto_notify_new_file.sh 依赖 inotifywait 持续监控,进程消失后无自动重启
  • 6月12日后进程消失,6月15日凌晨5份合同完全未被检测到
  • 教训:inotifywait类脚本需要进程守护机制(systemd service或cron watchdog)

workflow suspended无人发现

  • workflow因API 500错误suspended后,小Maggie未主动检查
  • 规则:"启动后必须跟进到完成(不能启动了不管)"
  • 必须有机制持续检查uwf thread list的状态

workflow通知时序

  • 旧版:deliverer先通知→final_review后终审→$END(不通知)
  • 问题:终审rejected时Doro已收到虚假"完成"通知
  • 修复:deliverer去掉通知,final_review approved后才通知
  • workflow hash变更记录:DQVH5MWCGYXMX → 6EZEZJF8M15V6 → 6T8SCPEQJ7DWJ

禁止把Doro放入自动化流程

  • Doro明确拒绝被加入cron监控或自动通知链
  • 技术问题应自行解决,不能设计成"出问题就通知Doro"

reviewer agent进程反复崩溃

  • 端午节合同两次在reviewer阶段因agent进程崩溃失败("agent command failed")
  • 非workflow逻辑问题,疑为API调用超时或内存问题
  • 处理方式:重新启动thread(第三次成功),不修改workflow逻辑

串行调度脚本(auto_notify挂掉时的临时方案)

  • 位置:~/.hermes/scripts/run_contract_queue.sh
  • 用法:bash run_contract_queue.sh "file1.docx" "file2.docx" ...
  • 逐份创建thread并同步执行,suspended自动重试一次,失败则跳过继续
  • 日志:/tmp/contract_queue.log
  • 等待当前运行中的thread完成后再启动队列:写wrapper脚本轮询uwf thread show的status直到非running

contract_docx_lib.py bug修复记录(2026-06-15)

  • add_clause/add_clause_before numPr继承bug:deepcopy相邻段落pPr时会连带numPr,导致新增独立条款错误继承上一条的子编号列表。修复:deepcopy后自动剥离numPr
  • 签署页INS字体不一致:editor照抄被替换文字的rPr(sz=24 bold=no),但签署页标签是sz=28 bold=YES。修复:final_review检查清单新增g项和h项