系统概述
基于 Anthropic long-running harness 和 lofty-fe-claude-plugin 实践构建的个人待办管理系统,位于 ~/.openclaw/workspace/custom-func/todo-harness/。
核心设计原则(四条硬规则)
- 一次只推进一个最重要任务(单步增量)
- 每一步必须可验收(Definition of Done)
- 每一步结束必须留结构化日志(可被下个会话接手)
- 阻塞必须显式升级(不允许静默卡住)
数据模型(四层分离)
A. task_inventory.json(事实层)
-
用途: 任务的唯一事实源(Single Source of Truth)
-
存储内容: 任务定义、优先级、依赖关系、验收标准
-
字段:
task_id: 唯一标识title: 任务名称description: 详细描述area: 任务领域(work-management/personal/technical)priority: 优先级(high/medium/low)impact: 影响力(1-5)urgency: 紧急度(1-5)effort: 工作量(1-5)risk: 风险评估(low/medium/high)status: 状态(todo/doing/complete)owner: 负责人depends_on: 依赖任务ID数组acceptance: 验收标准数组execution_mode: 执行模式(manual/auto-candidate)executor: 执行者(sean/assistant/both)created_at: 创建时间updated_at: 更新时间
-
队列结构:
inbox: 未分类任务backlog: 待办池active: 进行中waiting: 等待中done: 已完成
B. progress_log.json(行为层)
- 用途: 事件流 + 栈顶驱动
- 特点:
[0]永远是当前或下一任务 - 典型流转:
todo -> doing -> complete - 阻塞处理: 写
block状态并附blocking_reason+ask - 字段:
task_id: 关联任务task_name: 任务名称status: 当前状态summary: 摘要说明next_action: 下一步动作timestamp: 记录时间completed_by: 完成者(仅完成时)
C. daily_focus.json(执行层)
- 用途: 当天 Top3 + 时间块分配
- 目标: 保证日内不被低价值任务淹没
- 内容: 每日最多3个核心任务 + 预计时间块
D. rules.json(策略层)
- 用途: WIP 限制、优先级算法、升级规则
- 包含内容:
- WIP(Work In Progress)限制
- 优先级计算公式
- 任务升级规则
- 自动执行策略
调度策略
优先级计算公式
score = impact × 3 + urgency × 3 - effort - risk_penalty
选择规则
- 先过滤掉
depends_on未满足项 - 从
todo队列按 score 取最高分任务 - 若高优先级紧急任务到来,允许抢占当前任务
- 同时进行任务数 ≤
wip_limit(默认1)
自动执行策略
- execution_mode: “auto-candidate” → 系统识别为可自动执行
- executor: “assistant” → 由 clawBot 自动派发 sub-agent 执行
- executor: “sean” → 需要 Sean 人工介入
- executor: “both” → 协作完成
会话运行协议(Agent Runbook)
每次与 Sean 会话时执行的标准流程:
- 读取栈顶: 读取
progress_log.json顶部,确认当前任务状态 - 选择任务: 读取
task_inventory.json,找到可执行的最高优先级任务 - 推进一步: 推进一个最小可交付步(不跨太大范围)
- 更新日志: 更新进度日志并写入下一任务状态
- 输出四项汇报:
- 当前完成了什么
- 接下来做什么
- 风险/阻塞点
- 需要 Sean 决策什么
阻塞与升级机制
阻塞判定
- 任务无法继续推进时,立即标记为
block状态 - 附加
blocking_reason说明原因 - 附加
ask说明需要什么决策
自动升级
- 阻塞超过 24h 自动升级
- 升级消息模板:
阻塞任务: <task_id> 原因: <blocking_reason> 建议决策: <options A/B/C> 若无回复默认策略: <fallback>
工作方式承诺
clawBot 对 Sean 的工作承诺:
- 结构化优先: 把自然语言任务先转成结构化条目,再执行
- 透明可见: 主动维持”当前任务 + 下一任务”可见
- 增量推进: 不会一次吃掉太多任务导致失控
- 关键决策点: 在关键决策点向 Sean 要明确指令
- 主动推进: 先行动后汇报,避免被动等待(仅关键点请求决策)
自动化机制
每日 00:00 - 任务巡检
- 检查所有任务状态
- 识别超时任务
- 更新任务优先级
- 清理已完成任务
每日 07:00 - 早间提醒
- 发送今日待办清单
- 汇报昨日完成项
- 汇报 assistant 代办完成项
- 提示需要 Sean 决策的事项
任务输入模板
推荐格式(可直接发送自然语言,系统会自动结构化):
- 任务:
- 背景:
- 截止时间:
- 预期结果:
- 优先级(高/中/低):
- 依赖:
- 是否需要你拍板(是/否):
示例:
- 任务:本周完成 Smart Plan 列表页性能优化方案
- 背景:线上卡顿,客服有反馈
- 截止时间:周五 18:00
- 预期结果:可落地优化清单 + 风险评估 + 排期建议
- 优先级:高
- 依赖:后端给接口耗时分布
- 是否需要你拍板:是(是否分两期上线)
系统文件结构
~/.openclaw/workspace/custom-func/todo-harness/
├── docs/
│ ├── SYSTEM.md # 系统设计文档
│ └── INPUT_TEMPLATE.md # 任务输入模板
├── state/
│ ├── task_inventory.json # 任务清单(事实层)
│ ├── progress_log.json # 进度日志(行为层)
│ ├── daily_focus.json # 每日焦点(执行层)
│ └── rules.json # 策略规则(策略层)
├── scripts/ # 自动化脚本
└── README.md # 系统说明
成功案例(已完成任务)
- W-002: 买衣服提醒(cron 定时提醒)
- W-003: 建立待办强制入库与午夜巡检机制
- W-004: 每日 07:00 待办提醒
- W-005: 自动识别可自执行任务并用 sub-agent 执行
- W-006: 工作模式升级(主动推进而非被动问答)
- W-007: Obsidian 笔记静态网站完整部署方案
- W-008: 执行 Obsidian 静态站部署到 Cloudflare Pages
系统特色
- 增量推进: 防止任务爆炸,一次一小步
- 可接力: 结构化日志保证跨会话可接手
- 主动驱动: 不等指令,自动识别下一步
- 透明可控: 关键决策点请求确认,日常自主推进
生成时间: 2026-02-12 18:03 GMT+8 系统版本: 1.0.0 维护者: clawBot