Skip to content

目标管理

个人多层级目标 / 规划,位于项目之上:回答「要达成什么」,执行仍落在清单、项目、任务、日程等既有面。

命名: 产品名「目标」;组件 / feature / RPC 为 objective禁止使用裸 goal(已占用为会话便签)。UI 品牌化 OKR;子节点文案用「子目标」。

objective(可嵌套 parent_id)
├── completion(完成标准)
└── links → project | task_item | task_list | calendar_event(弱引用导航)
project → task_item

links 供跳转;自动统计用的 id 列表在 completion.source,职责分离。

中文说明
not_started未开始默认新建
in_progress进行中
completed已完成用户手工改状态;因进度达标自动翻转
cancelled已取消
on_hold暂停

objective.list 默认只返回 not_started + in_progressinclude_inactive: true 可含其余状态。

qualitative 非量化:靠 status + content
metric_manual 手工量化(如跑量 100km):unit / target / current
metric_auto 可自动统计
├── tasks_completed
├── projects_completed
├── children_completed(直系子目标;已取消不计分母;读侧现算)
├── pomodoro(窗口内 session 次数或分钟;可选 task_ids)
└── habit(按 habit_id 统计窗内达标日数;见 [habit.md](./habit.md))

读接口附带计算字段 resolved_progress写回 body):current / target / unit / ratio / source

可选离线幂等键:string(非强制 UUID),存 entities.client_op_id;仅 create 写 RPC 传入。见 offline-platform.md

位置字段说明
entitytitle / content标题;说明 / 成功叙事
bodyparent_id嵌套;防环
bodystatus / start_at / end_at生命周期与可选周期
bodycompletion / links完成标准;导航链接
bodysort_order排序
顶层列client_op_id离线幂等

删除目标时一并软删全部子孙目标。链接目标不删执行实体。

壳模块 objectives,路由 /objectives(Rail「目标」)。创建时可选手动 / 自动完成类型(含习惯来源)。

列表项快捷菜单(pointer:右键 ContextMenu;touch:⋯ / 长按 ActionSheet):调整 status、添加子目标(预填 parent_id)。

可选 subject_kind: user | agent。传输:POST|WS /rpc/v1

方法用途
objective.list列表(默认可筛选 parent / status;含 resolved_progress
objective.get详情
objective.create / patch建改(含 completion)
objective.delete软删(含子树)
objective.link / unlink增删导航 links

实现:packages/habitat/features/objective/;UI:packages/frontend/features/objective/

  • 健身 App 自动采集(习惯打卡见 habit.md
  • 进度达标自动 status → completed
  • O / KR 双实体;里程碑复活
  • 跨 world 共享目标
  • 复杂番茄标签 DSL