工作计划管理(Workplan Tracker)
概述
在 WorkBuddy 中管理个人或团队的工作计划。支持按需新增 / 完成 / 更新 / 跟踪 / 查看任务,并配套两个自动化:每周一 09:00 生成周计划、每日 09:00 待办提醒。核心数据模型是大类 + 小类两级分类,配合状态 / 优先级 / 负责人 / 日期等字段。
存储后端(二选一,由用户决定):
- 腾讯文档智能表格(在线协作、手机端可看)——默认/既有方案
- 本地 Excel 文件(离线、存于工作空间)——新增方案
两种后端字段模型一致,仅在 I/O 方式与日期/下拉的存储格式上有差异(见下文「存储后端差异与操作路由」)。
何时使用
- 用户说「新增任务 / 待办」「xx 完成了」「补录已完成」「看看有哪些任务」「跟踪 xx 进展」「工作计划」「周计划」「每日提醒」等。
- 用户要求设置周计划或每日提醒自动化。
- 用户在某工作空间首次管理工作计划(走初始化流程,并选择存储后端)。
配置优先原则
执行任何操作前,先读取当前工作空间的 .workbuddy/workplan_config.md:
- 若文件存在且含
storage与对应后端的连接信息,直接使用这些配置值操作,不要再询问用户。 - 若文件不存在(工作空间首次使用),执行初始化流程:先问用户选哪种存储后端,再据此建表并写入配置。
存储后端差异与操作路由
| 操作 | 腾讯文档(tencent) | 本地 Excel(local) |
|---|---|---|
| 新增 | mcp__tencent-docs__smartsheet.add_records |
python excel_ops.py add --path <xlsx> --json '{...}' |
| 更新 | mcp__tencent-docs__smartsheet.update_records(每条含 record_id) |
python excel_ops.py update --path <xlsx> --id <记录ID> --json '{...}' |
| 读取 | mcp__tencent-docs__smartsheet.list_records |
python excel_ops.py list --path <xlsx> |
| 删除 | delete_records |
python excel_ops.py delete --path <xlsx> --id <记录ID> |
| 日期字段 | 毫秒时间戳(string_value),UTC+8 |
Excel 日期单元格(yyyy-mm-dd),传 YYYY-MM-DD 或毫秒时间戳均可 |
| 单选字段 | option_value(自动匹配选项) |
纯文本单元格(已加下拉数据验证) |
| 记录标识 | 腾讯自动 record_id |
表格内置 记录ID 列(R0001…),更新/删除依此定位 |
> 本地 Excel 后端操作一律走本 skill 的 references/excel_ops.py(用 openpyxl,会自动按需安装依赖)。其绝对路径记录在 config 的 excel_ops_path。完整子命令见 references/init_prompt.md 第 2.5 节。
字段格式踩坑(仅腾讯文档后端,关键——格式错会静默丢数据)
腾讯文档智能表格各字段类型要求特定的值包裹格式:
- dateTime 字段(开始日期 / 截止日期 / 完成日期):必须用
string_value传毫秒时间戳(UTC+8)。不要传 ISO 字符串或纯文本,否则会被静默丢弃(字段变空)。
计算方法:
bash python3 -c "from datetime import datetime,timezone,timedelta; tz=timezone(timedelta(hours=8)); print(int(datetime.strptime('2026-07-10','%Y-%m-%d').replace(tzinfo=tz).timestamp()*1000))" - singleSelect 字段(状态 / 优先级 / 大类 / 来源):用
option_value: {items: [{text: "选项文字"}]}。传 text 即可自动匹配已有选项(无需 id)。 - text 字段(任务名称 / 小类 / 负责人 / 备注):用
text_value: {items: [{text: "...", type: "text"}]}。
工具:mcp__tencent-docs__smartsheet.add_records(新增)、update_records(更新)、list_records(读取)、list_fields(查字段ID)。新会话中这些 mcp 工具可能需先 ToolSearch 加载,或直接用 DeferExecuteTool 以已知 toolName 调用。
> 本地 Excel 后端无需上述格式:日期直接传 YYYY-MM-DD(或毫秒时间戳)、单选直接传文本字符串即可(由 excel_ops.py 处理)。
分类体系(大类 + 小类)
- 大类 — 固定项:项目管理 / 解决方案管理 / 商机管理 / 团队管理 / 市场研究 / 日常事务
- 小类 — 自由文本,标记大类下的具体内容。完整小类映射见
references/field_spec.md: - 项目管理 → 项目名称
- 解决方案管理 → 方案名称
- 商机管理 → 客户 / 商机名称
- 团队管理 → 员工谈话 / 绩效考核 / 管理规范 / 招聘 / 培训 / 团队建设 / 目标设定 / 薪酬激励 / 考勤 / 离职异动
- 市场研究 → 研究主题(政策 / 行业 / 竞品 / 标杆)
- 日常事务 → 临时工作描述
日常操作(后端无关,按上表路由)
- 新增待办:组装一条记录(任务名称 / 大类 / 小类 / 状态=待办 / 优先级 / 负责人[默认规则] / 开始日期=今天 / 截止日期 / 来源=临时新增 / 备注)→ 按后端路由写入。
- 完成或补录已完成:流转状态→已完成,填写完成日期(提供则用提供日,否则填今天);补录时若未提负责人,按默认规则填。
- 更新 / 跟踪:修改对应字段(如延长截止日期、在备注追加跟踪结果、流转状态)。跟踪类任务通常保持「待办」直到真正终态,才改为「已完成」。
- 查看:读取全部记录 → 按状态筛选呈现(待办 / 进行中 / 已完成 / 已取消)。
默认规则
未明确指定负责人时,默认填用户本人(本工作空间 = 仝兆哲),因为表格记录的是个人的工作计划。仅当任务实际由他人执行(如「张留辉负责优化」)时,才在负责人填实际执行人、并在备注说明。此规则同样适用于自动化生成的任务。
初始化流程(工作空间首次使用)
仅当 .workbuddy/workplan_config.md 不存在时执行:
- 询问用户选择存储后端:腾讯文档 还是 本地 Excel。
- 若选腾讯文档:
- 确认
tencent-docs连接器已连接(若断开,提示用户重连后再继续)。 create_file(file_type="smartsheet", title="工作计划管理表")→ 得file_id。list_tables(file_id)→ 得sheet_id。add_fields创建字段(完整字段定义见references/init_prompt.md)。- 清理默认空行(
list_records找空记录删除)与默认列(list_fields找默认列删除)。 - (可选)
add_view创建「按状态分组」看板视图。 - 若选本地 Excel:
- 用
python <skill目录>/references/excel_ops.py init --path <工作空间>/工作计划管理表.xlsx --sheet 任务创建带表头与下拉验证的表格。 - (可选)把 xlsx 加入工作空间忽略规则或版本管理白名单(依用户习惯)。
- 写入
.workbuddy/workplan_config.md(模板见references/init_prompt.md,含storage与对应后端信息及excel_ops_path)。 - 创建两个自动化(prompt 见
references/init_prompt.md,已做后端无关处理):周一 09:00 周计划、每日 09:00 待办提醒。
自动化
- 每周一 09:00 周计划:读记忆 + 日志 + 表格 → 生成本周计划 → 添加新待办(绝不重复添加已有任务)。
- 每日 09:00 待办提醒:读表格 → 筛选待办/进行中 → 按截止日期排序 → 标注逾期 / 今天到期 / 3天内临近 → 输出摘要。严格只读:绝不修改任何记录。
- 两个自动化的 prompt 均为后端无关:运行时读取 config 的
storage,tencent 走 smartsheet、local 走excel_ops.py。
资源文件
references/field_spec.md— 完整字段定义、分类与小类映射、时间戳计算、两种后端的字段/列差异。references/init_prompt.md—add_fields完整 JSON、excel_ops.py用法、两个自动化 prompt 模板(后端无关)、workplan_config.md模板(含存储后端)、已知实例配置。references/excel_ops.py— 本地 Excel 后端 CLI 工具(init/list/add/update/delete),依赖 openpyxl(自动安装)。