工时填报与跟踪

基于 OpenClaw 定时任务系统的智能工时填报提醒与追踪工具,每天自动生成填报计划并持续追踪进度。

概述

工时填报与跟踪系统是为 Azure DevOps 任务管理而设计的自动化工时记录工具。系统每个工作日 CST 17:00 自动生成工时填报计划,显示各任务的当日应填小时数、累计进度百分比和剩余工时,并以可视化进度条呈现。

系统具备”夺命连环 Call”提醒机制——当用户未回复”填好了”时,每15分钟自动发送一次提醒,直到确认填报完成。状态通过 memory/timesheet_state.json 文件进行持久化管理。后期该功能从主代理 Dora 迁移到了独立的 Work Assistant 代理。

关键点

  • 自动计划生成:根据任务截止日期和剩余工时,每天自动计算应填小时数
  • 多任务追踪:同时管理多个任务(如 3131 Sprint、AIIB、1867、8429)
  • 进度可视化:使用 ASCII 进度条 [▓▓░░░░░░░░] 直观显示完成度
  • 15分钟追魂提醒:未确认填报时持续提醒,通过 timesheet_state.json 管理状态
  • 状态持久化active 标记 + nextReminderAt 时间戳,支持跨会话追踪
  • 代理迁移:从 main (Dora) 迁移到 Work Assistant (@work-assistant)

技术细节

提醒逻辑

// memory/timesheet_state.json
{
  "active": true,
  "nextReminderAt": "2026-03-05T10:09:00Z"
}
  1. 检查 timesheet_state.jsonactive 是否为 true
  2. 如果当前时间超过 nextReminderAt,发送提醒
  3. 更新 nextReminderAt 增加15分钟
  4. 用户回复”填好了”/“filled”/“done” 时,active 设为 false

工时计划表格式

| Task ID | Today's Fill | Remaining | Progress         | Note                      |
| ------- | ------------ | --------- | ---------------- | ------------------------- |
| 3131    | 7h           | 41h       | [====......] 41% | Sprint (Deadline: 3/13)   |
| AIIB    | 0h           | 4h        | [==........] 20% | Tuesday Only (Next: 3/10) |
| 1867    | 0h           | 54h       | [..........] 0%  | Starts 3/16               |
| 8429    | 0h           | 21h       | [..........] 0%  | Starts 3/16               |

Cron 配置

  • 原始:Dora 主代理 heartbeat 每日 CST 17:00 触发
  • 迁移后:Work Agent cron labor-hour-reminder,每工作日 UTC 9:00 (CST 17:00)

相关脚本

  • check_azure_devops.js — 检查 Azure DevOps 工作项
  • add_ado_comments.js — 添加 ADO 评论
  • labor_hours_tracking.json — 工时追踪数据
  • timesheet_state.json — 提醒状态数据

时间线

  • 2026-03-02: 开始工时填报追踪,任务3131 Sprint 首日记录8小时
  • 2026-03-04: 记录 Mar 2-4 共22/70小时,进度31%
  • 2026-03-05: 引入”夺命追魂提醒”机制,15分钟一次直到确认
  • 2026-03-06: 提醒逻辑文件 timesheet_state.json 持续运作
  • 2026-03-11: 工时提醒功能从 Dora 主代理迁移到 Work Assistant 代理
  • 2026-03-12 ~ 03-19: Work Assistant 独立运行每日工时提醒,追踪 3131/AIIB/6355/8429 四个任务
  • 2026-03-17: 调整填报策略——除 AIIB(固定周二)外,每天只填一个任务,填完再切下一个
  • 2026-03-19: 新增任务 1867(30h),总计 180h 待填,每天平均 9.1h 压力极大
  • 2026-03-19: 确定最终排期:6355→8429→1867 顺序填报,10h/天高强度
  • 2026-03-20 起: 出现 Mattermost 发送失败问题(缺少 target),提醒内容仅记录到文件
  • 2026-04-01: 工时数据重置,等待新输入

三月工时任务汇总

任务总计周期说明
313170h3/2-3/13Sprint,已完成 ✅
AIIB5h每周二 1h报表功能改进
635554h3/16-3/26Sprint 2 主任务
842921h3/19-3/31Sprint 2 副任务
186730h3/27-3/31新增任务

相关页面