name: goal-tracker description: 跟踪目标进展,从执行中推导状态,识别差距,触发行动。用于目标状态检查、进展回顾和运营目标管理。
目标追踪器
从执行中推导目标状态,跟踪进展,识别差距,触发行动。
运作模式
目标是LeanOS的主要运作模式。追踪器维护目标状态。
主动模式(主要): 目标 → 计划 → 线程 → 产出物 → 学习 → 画布
↑
目标追踪器从此处推导状态
目标追踪器读取:
- 目标文件(目标、计划、成功标准)
- 线程(执行状态,第6阶段学习)
- 产出物(可交付成果验证)
目标追踪器写入:
- 目标状态部分(指标、轨迹、日志)
- 建议(弥补差距的行动)
类型签名
目标追踪器 : 目标 × 线程 × 时间 → 更新后的目标 × [行动]
其中:
目标 : strategy/goals/active/{id}.md
线程 : threads/{type}/{name}/ (链接到目标)
时间 : 用于轨迹计算的当前日期
更新后的目标 : 带有刷新后状态部分的目标
行动 : 建议或自动执行的干预措施
何时使用
- 每日/定期目标回顾
- 线程完成后(更新链接的目标)
- 用户询问“我在{目标}上进展如何?”
- 主动差距检测
- 计划会议之前
核心操作
1. 状态推导
状态是计算出来的,而非手动跟踪。从执行中推导:
对于目标 G:
1. 查找链接的线程:
- 扫描 G.Plan.Subgoals[*].Threads
- 加载每个线程的当前状态
2. 汇总执行指标:
活跃线程数 = 计数(线程.状态 == "活跃")
已完成线程数 = 计数(线程.状态 == "已完成")
受阻线程数 = 计数(线程.状态 == "受阻")
3. 提取成果指标:
对于每个已完成的线程:
读取第6阶段(学习)成果
映射到目标成功标准
4. 计算衍生指标:
对于每个成功标准:
当前值 = 来自线程成果的总和/计数
差距 = 目标值 - 当前值
趋势 = 与先前状态比较(↑↓→)
2. 子目标状态更新
对于每个子目标 SG:
如果 SG.Threads 为空:
状态 = "待处理"
否则如果 任意(线程.状态 == "活跃"):
状态 = "进行中"
否则如果 所有(线程.状态 == "已完成") 且 SG.Success 已满足:
状态 = "已完成"
否则如果 任意(线程.状态 == "受阻"):
状态 = "受阻"
3. 里程碑检查
对于每个里程碑 M:
如果 M.criterion 已满足:
标记 [x] 已完成
记录完成日期
4. 轨迹预测
给定:
当前值 = 当前指标值
目标值 = 目标指标值
开始日期 = 目标.创建日期
截止日期 = 目标.截止日期
今天 = 当前日期
计算:
已用时间 = 今天 - 开始日期
剩余时间 = 截止日期 - 今天
进展速率 = (当前值 - 初始值) / 已用时间
预测最终值 = 当前值 + (进展速率 × 剩余时间)
确定:
是否按计划 = 预测最终值 >= 目标值
预测完成日期 = 开始日期 + ((目标值 - 初始值) / 进展速率)
风险等级:
低 = 按计划 且 剩余时间 > 30 天
中 = 按计划 且 剩余时间 <= 30 天
高 = 不按计划
严重 = 不按计划 且 剩余时间 <= 14 天
5. 差距分析
对于每个成功标准:
差距 = 目标值 - 当前值
差距百分比 = 差距 / 目标值 × 100
如果 差距百分比 > 50%:
标记:"{标准}存在显著差距"
如果 趋势 == "↓" 且 差距百分比 > 20%:
标记:"指标下降:{标准}"
6. 行动生成
基于差距和自治模式:
如果检测到差距 且 目标.自治模式允许:
对于 自治模式 == "自动":
直接创建线程
记录:"自动创建线程 {id} 以解决 {差距}"
对于 自治模式 == "询问":
生成建议
向用户展示选项
对于 自治模式 == "混合":
计算行动影响
如果 影响 < 0.5:自动创建
如果 影响 >= 0.5:询问用户
行动类型:
| 差距类型 | 建议行动 |
|---|---|
| 管道差距 | 创建外展活动线程 |
| 转化差距 | 创建优化线程 |
| 内容差距 | 创建内容线程 |
| 技术差距 | 创建工程线程 |
| 知识差距 | 创建学习线程 |
输出
更新后的目标文件
更新 strategy/goals/active/{goal-id}.md:
## 状态
### 指标
| 指标 | 当前 | 目标 | 差距 | 趋势 |
|--------|---------|--------|-----|-------|
| MRR | $12,500 | $50,000 | $37,500 | ↑ |
| 客户数 | 6 | 10 | 4 | ↑ |
| 管道 | 12 | 20 | 8 | → |
### 执行
- **活跃线程:** 3 (campaign-q1, sales-process, content-linkedin)
- **已完成线程:** 5
- **受阻:** 1 (等待法务审核)
### 轨迹
- **按计划:** 否
- **预测完成日期:** 2025-07-15 (延迟15天)
- **风险等级:** 中
## 日志
- {先前条目}
- {今天}:状态已更新。MRR +$2,500。管道停滞。风险:中。
进展报告(请求时生成)
# 目标进展:{目标标题}
**状态:** {按计划 | 有风险 | 偏离计划}
**进展:** {X}% 朝向目标
**剩余时间:** {N} 天
## 指标摘要
{当前值与目标值对比表}
## 有效方面
- {积极趋势 1}
- {积极趋势 2}
## 已识别差距
- {差距 1}:{当前值} 对比 {目标值} (落后 {差距%})
- {差距 2}:{描述}
## 建议行动
1. {行动 1} - 解决 {差距}
2. {行动 2} - 解决 {差距}
## 子目标状态
- [x] SG1:{已完成}
- [→] SG2:{进行中}
- [ ] SG3:{待处理}
## 下一个里程碑
{里程碑描述} - 截止 {日期} ({N} 天后)
工作流
快照(按需)
触发:用户请求状态,或定期回顾
1. 加载所有活跃目标
2. 对于每个目标:
a. 推导当前状态
b. 检查轨迹
c. 识别差距和风险
3. 生成快照报告(见输出部分)
4. 呈现建议
5. 如果自治模式允许,执行自动行动
不生成每日文件。 快照是按需计算的,不存储。 目标本身是持久状态 - 快照是衍生视图。
线程完成(响应式)
触发:线程达到第6阶段(学习)
1. 查找链接到线程的目标
2. 更新子目标状态
3. 从线程学习中提取指标
4. 更新目标状态
5. 检查目标是否完成
6. 如果完成:移动到 strategy/goals/completed/
用户查询
触发:用户询问目标进展
1. 加载指定目标(或所有目标,如果未指定)
2. 推导当前状态
3. 生成进展报告
4. 如果存在差距,呈现建议
目标完成
触发:所有成功标准均已满足
1. 标记目标状态:已完成
2. 更新所有子目标:已完成
3. 标记剩余里程碑
4. 添加完成日志条目
5. 移动文件到 strategy/goals/completed/
6. 生成完成摘要
7. 识别后续目标(如果有)
集成
与目标设定器
- 追踪器对设定器创建的目标进行操作
- 追踪器可能建议目标优化 → 触发设定器
与线程(因果推理)
- 线程通过6阶段因果流执行目标子目标
- 线程
meta.json包含goal_id和subgoal引用 - 线程第6阶段(学习)通知目标追踪器已完成
- 目标追踪器更新子目标状态和目标指标
- 弥补差距的行动创建新的链接到目标的线程
与画布
- 目标完成可能验证画布假设
- 基于学习成果建议画布更新
自治行为
自动模式
检测到差距 → 创建线程 → 执行 → 记录
除非出错,否则无需用户交互
询问模式
检测到差距 → 生成建议 → 呈现选项:
[1] 创建建议的线程
[2] 修改建议
[3] 暂时忽略
[4] 暂停目标
混合模式
检测到差距 → 计算影响:
- 行动成本
- 时间投入
- 风险等级
影响 < 0.5 → 自动模式
影响 >= 0.5 → 询问模式
约束
更新频率
- 状态推导:按需或每日
- 轨迹计算:每周至少一次
- 全面回顾:任何计划会议之前
数据新鲜度
- 线程数据必须是最新的(检查更新时间戳)
- 陈旧数据(>7天)触发警告
禁止事项
- 修改目标或成功标准(那是目标设定器的工作)
- 不检查自治模式就创建线程
- 未经验证所有标准就标记目标完成
- 未经用户确认就删除或放弃目标
错误处理
无链接线程:
警告:"目标 {id} 没有执行线程。
已定义子目标但未激活。
建议:为 SG1 创建初始线程。"
陈旧目标(>14天无更新):
警告:"目标 {id} 已 {N} 天无活动。
选项:(1) 回顾并更新,(2) 暂停目标,(3) 放弃目标"
指标冲突:
警告:"指标 {name} 从线程中获取了冲突的值。
线程 A:{值},线程 B:{值}
使用:{解决策略}"
目标截止日期已过:
警报:"目标 {id} 截止日期为 {日期}。
状态:{已达成 | 未达成}
选项:(1) 延长截止日期,(2) 按现状标记完成,(3) 放弃"