Skip to content

Proposal:普通复盘 #119

Description

@znnnnnnn-wil

Issue:普通复盘

1. 功能描述

普通复盘模块负责根据用户指定时间范围内的 Schedule 和 Schedule Execution Result,生成可追溯的执行结果统计与日程列表,帮助用户快速了解已经完成、没有完成、尚未确认和已经取消的日程。

普通复盘只基于正式业务数据生成结果,不根据日程标题、备注、提醒触发记录或日程结束时间猜测用户是否完成了日程。

本模块支持用户通过以下方式查看复盘:

  • 在首页进入当前选中日期的普通复盘。
  • 通过语音查询“复盘一下今天”。
  • 通过文字查询“看看昨天完成了什么”。
  • 查询本周或明确日期范围内的执行结果。
  • 从待确认日程列表进入执行结果更新流程。

普通复盘的基本处理流程为:

确定复盘范围
→ 查询范围内的 Schedule
→ 计算 Schedule 时间状态
→ 读取 Schedule Execution Result
→ 由确定性逻辑完成过滤、分组与数量统计
→ Agent 根据确定性结果生成简短表达
→ 展示统计、分类列表和对应 Schedule

普通复盘不是独立的智能分析系统,也不是自动评价用户效率的功能。

本模块不负责推断用户行为,不负责自动标记日程完成,不负责生成长期画像,也不负责自动提出复杂改进建议。

2. 用户 / 用户故事

目标用户:希望快速了解一天、一周或指定时间范围内日程实际执行情况,但不需要复杂数据分析和长期行为报告的用户。

用户在一天结束后说:

复盘一下今天。

系统查询今天已经结束的 Schedule 和对应 Schedule Execution Result,并展示:

今日复盘

已完成:2 项
未完成:1 项
待确认:1 项

已完成
- 09:00 项目晨会
- 15:00 客户沟通

未完成
- 18:30 健身

待确认
- 11:00 提交周报

用户点击“提交周报”,可以查看日程详情。

用户确认该日程已经完成后,可以从待确认列表进入执行结果更新流程。更新成功后,复盘数据重新计算:

已完成:3 项
未完成:1 项
待确认:0 项

用户也可以说:

复盘一下本周。

系统按照用户当前时区计算本周范围,展示本周已完成、未完成和待确认的 Schedule。

如果本周仍有尚未开始或正在进行中的日程,这些日程不进入完成结果统计。

用户说:

今天下午的项目会完成了。

该请求属于 Schedule Execution Result 写操作,应先定位目标 Schedule、生成操作候选并由用户确认。写入成功后,普通复盘才能将该日程归入已完成。

3. 现有做法及不足

普通日历通常只记录日程的开始时间、结束时间和是否已经过去。

如果直接把“结束时间已经过去”当成“日程已经完成”,会产生错误业务事实。

例如:

  • 会议时间已经结束,但用户可能没有参加。
  • 健身日程已经结束,但用户可能临时取消。
  • 提交汇报的时间已经过去,但用户可能忘记提交。
  • 用户确实完成了日程,但没有在系统中留下执行结果。

日程时间状态和实际执行结果属于两个不同概念:

时间状态:
UPCOMING
IN_PROGRESS
ENDED

执行结果:
UNCONFIRMED
COMPLETED
NOT_COMPLETED

ENDED 只能说明日程已经到达结束时间,不能说明实际完成。

如果由 Agent 根据日程标题、聊天上下文、提醒是否触发或时间是否结束自由判断完成状态,会导致:

  • 复盘结果无法追溯。
  • 相同事实可能得到不同结论。
  • Agent 将推测内容写成确定事实。
  • 用户无法理解系统为什么认为某件事已完成。
  • 修改执行结果后,历史结果难以保持一致。
  • 完成率和统计数据失去可信度。

如果每次复盘都由 Agent 自由查询并计算数量,也可能出现:

  • 分类规则不一致。
  • 统计数量与列表数量不一致。
  • 已取消日程被错误计入未完成。
  • 尚未开始的日程被提前计入复盘。
  • Agent 在表达中改变正式状态或遗漏对象。

因此,本模块采用以下原则:

确定性代码负责:
- 时间范围
- 数据查询
- 状态计算
- 分类
- 数量统计
- 对象列表

Agent 负责:
- 将结果组织成简短自然语言
- 根据用户问题选择合适表达
- 不改变任何事实数据

4. 本期范围

复盘范围

  1. 支持按单日查看普通复盘。
  2. 支持按自然周查看普通复盘。
  3. 支持按明确开始日期和结束日期查看普通复盘。
  4. 首页普通复盘默认使用当前 Selected Date。
  5. 用户说“今天”时,使用用户当前时区的今天。
  6. 用户说“昨天”时,使用用户当前时区的昨天。
  7. 用户说“本周”时,按照统一周起始规则计算。
  8. 用户明确指定日期时,以用户表达为准。
  9. 支持展示当前复盘范围。
  10. 支持从复盘结果返回对应日期或 Schedule 详情。

数据查询与过滤

  1. 查询复盘范围内属于当前用户的 Schedule。
  2. 读取每个 Schedule 当前有效的 Schedule Execution Result。
  3. 根据当前时间计算 Schedule Time State。
  4. 识别已取消 Schedule。
  5. 排除已经删除的 Schedule。
  6. 排除不属于当前用户的 Schedule。
  7. 对跨日 Schedule 按统一规则判断是否属于查询范围。
  8. 使用用户时区计算日期边界。
  9. 不使用客户端缓存作为复盘事实来源。
  10. 复盘结果与正式数据库数据保持一致。

复盘分类

  1. COMPLETED 归入已完成。
  2. NOT_COMPLETED 归入未完成。
  3. ENDED + UNCONFIRMED 归入待确认。
  4. UPCOMING 不进入完成结果统计。
  5. IN_PROGRESS 不进入完成结果统计。
  6. CANCELLED 不计入已完成或未完成。
  7. 已取消 Schedule 可以单独展示或默认折叠。
  8. 已删除 Schedule 不展示。
  9. 同一个 Schedule 只能进入一个主要结果分组。
  10. 不根据 Reminder 状态修改复盘分类。

统计与展示

  1. 展示已完成数量。
  2. 展示未完成数量。
  3. 展示待确认数量。
  4. 可以展示已取消数量。
  5. 展示各分组对应的 Schedule 列表。
  6. 每条 Schedule 至少展示时间、标题和执行结果。
  7. 可以展示地点和提醒摘要。
  8. 点击 Schedule 可以进入详情。
  9. 待确认 Schedule 提供更新执行结果的入口。
  10. 结果变更成功后重新计算复盘。
  11. 无日程时展示明确空状态。
  12. 有日程但没有已结束日程时展示“当前没有可复盘日程”。
  13. 复盘列表按照 Schedule 开始时间稳定排序。
  14. 较长列表支持滚动和分组折叠。
  15. 统计数量必须与列表内容一致。

Agent 表达

  1. Agent 可以生成一句简短复盘总结。
  2. Agent 可以根据用户查询范围使用“今天”“昨天”“本周”等自然表达。
  3. Agent 只能使用确定性模块提供的统计和 Schedule 列表。
  4. Agent 不得修改数量。
  5. Agent 不得改变 Schedule 所属分组。
  6. Agent 不得遗漏正式结果后重新编造数量。
  7. Agent 不得推断用户未记录的执行情况。
  8. Agent 不得生成复杂效率评价。
  9. Agent 不得生成情绪判断。
  10. Agent 不得生成长期行为画像。
  11. 查询型复盘不需要用户确认。
  12. 从复盘中变更执行结果时,必须进入写操作候选确认流程。

执行结果联动

  1. 支持从复盘待确认列表发起执行结果变更。
  2. 支持将 UNCONFIRMED 更新为 COMPLETED
  3. 支持将 UNCONFIRMED 更新为 NOT_COMPLETED
  4. 支持修正已经设置的执行结果。
  5. 支持恢复为 UNCONFIRMED
  6. 执行结果写入由 Schedule 公共业务能力负责。
  7. 语音更新执行结果必须生成操作候选。
  8. 手动更新按照 Schedule 模块的确认规则执行。
  9. 执行结果变化后复盘数据必须刷新。
  10. 结果变更需要保留必要审计记录。

5. 明确不做

  • 不根据 Schedule 结束时间自动标记完成。
  • 不根据 Reminder 是否触发判断完成。
  • 不根据用户是否点击通知判断完成。
  • 不根据用户是否到达地点判断完成。
  • 不根据标题、备注或聊天内容猜测完成情况。
  • 不自动把 UNCONFIRMED 归类为未完成。
  • 不把 UPCOMINGIN_PROGRESS 计入完成率。
  • 不把已取消 Schedule 计入已完成或未完成。
  • 不在本模块创建或修改 Schedule 基础字段。
  • 不在本模块实现完整 Schedule Execution Result 数据写入规则。
  • 不绕过 Schedule 公共业务能力修改执行结果。
  • 不做复杂原因分析。
  • 不询问“为什么没有完成”作为 P0 必需流程。
  • 不生成效率评分。
  • 不生成时间利用率评分。
  • 不生成专注度评分。
  • 不生成情绪判断。
  • 不生成健康建议。
  • 不生成绩效评价。
  • 不生成用户画像。
  • 不生成长期习惯分析。
  • 不生成跨周期趋势图。
  • 不自动比较本周与上周。
  • 不自动推荐日程调整。
  • 不自动安排未完成日程。
  • 不自动将未完成日程顺延。
  • 不自动创建补偿 Schedule。
  • 不自动创建 Reminder。
  • 不做复杂复盘报告编辑。
  • P0 不持久化独立 ReviewReport。
  • 不提供独立复盘底部 Tab。
  • 不提供独立复盘一级页面。
  • 不做多人、团队或组织复盘。
  • 不做多个用户之间的完成率比较。
  • 不支持 Agent 自由调用外部数据补充复盘结论。
  • 不把普通复盘结果作为新的业务事实写入数据库。
  • 不允许普通复盘覆盖 Schedule Execution Result。

6. 关键决策

决策点 备选方案 选择 理由
复盘事实来源 Agent 推断 / 时间结束推断 / Execution Result Schedule Execution Result 用户明确结果才是可追溯事实
时间状态与执行结果 合并 / 分离 分离 日程结束不代表实际完成
执行结果枚举 已完成/未完成 / 增加待确认 UNCONFIRMED、COMPLETED、NOT_COMPLETED 避免没有证据时自动判定失败
新建 Schedule 默认结果 COMPLETED / NOT_COMPLETED / UNCONFIRMED UNCONFIRMED 创建日程时无法知道未来结果
未确认归类 未完成 / 已完成 / 单独待确认 单独待确认 防止错误完成率
尚未开始日程 计入待确认 / 不进入统计 不进入统计 用户尚未有执行结果
进行中日程 计入待确认 / 不进入统计 不进入统计 日程尚未结束
已取消日程 计入未完成 / 单独处理 单独展示或排除 取消和未完成是不同事实
统计执行方 Agent / 客户端 / 确定性服务 确定性业务模块 保证数量与分类稳定
Agent 作用 自由分析 / 只组织表达 只组织表达 保证复盘可信和可追溯
查询确认 所有复盘需要确认 / 直接展示 直接展示 查询不改变业务事实
结果变更 复盘直接写库 / 调用 Schedule 能力 调用公共业务能力 保持权限、版本和审计一致
语音结果变更 直接写入 / 候选确认 候选确认 执行结果属于正式业务事实
默认复盘范围 今天 / 当前选中日期 / 最近一天 当前选中日期 与单页首页日期上下文一致
语音明确范围 使用 Selected Date / 使用用户表达 使用用户明确表达 明确输入优先于页面上下文
周范围 动态猜测 / 统一规则 使用统一地区和产品规则 保证前后端一致
复盘持久化 保存 ReviewReport / 运行时生成 P0 运行时生成 避免报告版本和同步复杂度
列表排序 Agent 排序 / 客户端随机 / 确定性排序 按开始时间稳定排序 保证结果可预测
完成率 P0 默认展示 / 暂不作为核心指标 P0 以数量和列表为主 待确认会使简单完成率产生误导
未完成原因 强制填写 / 可选 / 不支持 P0 不要求 先验证事实型复盘价值
入口位置 独立 Tab / 首页入口或语音 首页入口或语音 不增加一级信息架构
空结果 Agent 自由解释 / 确定空状态 确定空状态 避免编造不存在的日程
结果更新后刷新 手动重新查询 / 自动重新计算 自动重新计算 防止展示旧统计

7. 边界与异常

时间范围边界

  • 所有日期和时间范围按照用户当前时区计算。
  • 单日范围从该日期本地时间 00:00:00 到下一日 00:00:00
  • 自然周的起始日需要使用统一产品规则。
  • 开始日期晚于结束日期时,不执行查询。
  • 日期范围为空或无法解析时,默认使用当前 Selected Date,或者由 Agent 追问。
  • 用户文本明确指定日期时,不使用 Selected Date 覆盖。
  • 用户只说“复盘一下”时,可以使用当前 Selected Date 作为默认范围。
  • 用户在非首页上下文中说“复盘一下”且没有默认日期时,应追问范围。
  • 复盘范围过大时,应限制查询范围或要求用户缩小范围。
  • 跨时区变更后,复盘范围按照查询时用户时区重新解释。
  • Schedule 的存储时间必须转换为用户时区后判断所属日期。

Schedule 范围边界

  • 只有属于当前用户的 Schedule 可以进入复盘。
  • 已删除 Schedule 不进入普通复盘。
  • 已取消 Schedule 不进入已完成或未完成统计。
  • 跨越查询范围边界的 Schedule 应按照统一的时间重叠规则处理。
  • P0 建议按照 end_at 是否落在复盘范围内判断已结束日程的归属,具体规则必须前后端一致。
  • 如果采用 start_at 归属规则,也必须在全部模块中保持一致。
  • 同一个 Schedule 不得在同一次复盘中重复出现。
  • Schedule 时间字段非法时,不应由复盘模块猜测修复。
  • 查询到非法正式数据时,应记录错误并避免错误统计。
  • Schedule 后续被修改到其他日期后,历史复盘查询使用当前正式事实;是否保留历史快照不属于 P0。
  • Schedule 已取消后又恢复时,按照当前 Schedule 状态重新计算。

时间状态与执行结果边界

  • UPCOMING 表示当前时间早于 start_at
  • IN_PROGRESS 表示当前时间位于 start_atend_at 之间。
  • ENDED 表示当前时间不早于 end_at
  • 时间状态通常在查询时计算,不作为完成结果写入。
  • COMPLETED 只能来自用户明确确认的结果。
  • NOT_COMPLETED 只能来自用户明确确认的结果。
  • UNCONFIRMED 表示当前没有明确执行结果。
  • ENDED + UNCONFIRMED 才能进入待确认分组。
  • UPCOMING + UNCONFIRMED 不进入待确认。
  • IN_PROGRESS + UNCONFIRMED 不进入待确认。
  • COMPLETEDNOT_COMPLETED 与时间状态出现异常组合时,需要按照业务校验规则处理。
  • 用户提前标记未来日程完成时,应由 Schedule 模块决定是否拒绝或要求强确认。
  • Reminder 触发状态不得改变 Schedule Execution Result。
  • 通知点击状态不得改变 Schedule Execution Result。
  • 地理围栏进入或离开事件不得改变 Schedule Execution Result。

统计边界

  • 已完成数量必须等于已完成列表对象数量。
  • 未完成数量必须等于未完成列表对象数量。
  • 待确认数量必须等于待确认列表对象数量。
  • 已取消数量必须等于已取消列表对象数量。
  • 一个 Schedule 只能计入一个分组。
  • 所有统计由确定性代码产生。
  • Agent 输出中的数字必须来自统计结果。
  • 没有符合条件的对象时,数量为零。
  • 不因为某个分组为空而省略其他分组事实。
  • P0 不建议直接计算简单完成率。
  • 如果展示完成率,分母必须明确是否排除待确认和已取消。
  • 完成率规则未明确前,不允许 Agent自行计算。
  • 数据加载部分失败时,不展示完整统计结果为成功。
  • 查询结果分页时,总数量不能只使用当前页列表长度。

执行结果修改边界

  • 从复盘页面修改执行结果需要调用 Schedule 公共业务能力。
  • 语音修改执行结果必须生成操作候选。
  • 修改对象不唯一时必须要求用户选择。
  • 操作候选必须包含 Schedule ID 和版本号。
  • 版本不一致时拒绝旧候选。
  • 写入失败时复盘列表保持原状态。
  • 写入成功后重新查询并重新统计。
  • 同一执行结果重复写入应保持幂等。
  • 结果从 COMPLETED 改为 NOT_COMPLETED 时需要记录变更。
  • 结果恢复为 UNCONFIRMED 后,如果 Schedule 已结束,应重新进入待确认。
  • 批量标记多个 Schedule 不在 P0 默认范围。
  • 用户说“今天的都完成了”时,不得自动批量写入。
  • 误操作后的恢复通过新的正式变更完成,不直接删除历史痕迹。

Agent 边界

  • Agent 不直接查询数据库。
  • Agent 通过受控查询能力获取 Review Summary 数据。
  • Agent 不自行重新计算数量。
  • Agent 不自行决定 Schedule 分组。
  • Agent 不根据标题判断是否完成。
  • Agent 不根据提醒触发判断是否完成。
  • Agent 不根据时间结束判断是否完成。
  • Agent 不得把待确认描述为未完成。
  • Agent 不得把取消描述为未完成。
  • Agent 不得为不存在的 Schedule 编造原因。
  • Agent 可以说明“有一项日程仍待确认”。
  • Agent 可以根据确定事实生成简短中性表达。
  • Agent 不得输出带有责备、诊断或绩效评价的结论。
  • Agent 服务不可用时,确定性统计和列表仍应可以展示。
  • Agent 表达失败时,不影响 Review Summary 数据返回。

查询异常

  • 查询服务失败时展示错误状态和重试入口。
  • Schedule 查询成功但 Execution Result 查询失败时,不生成可能错误的复盘结果。
  • 部分数据缺失时不得将缺失结果当作 UNCONFIRMED,除非数据模型明确默认如此。
  • 当前用户没有 Schedule 时展示“该范围内没有日程”。
  • 当前范围只有未开始或进行中日程时展示“当前没有可复盘的已结束日程”。
  • 全部 Schedule 都是待确认时,应明确提示用户补充执行结果。
  • 全部 Schedule 都已取消时,展示取消信息,不显示错误完成率。
  • Agent 服务异常时展示结构化统计,不将整个复盘判定失败。
  • 网络断开且本地数据不完整时,不伪装成完整复盘。
  • 本地存在完整已同步数据时,可以展示离线复盘,并标明数据更新时间。
  • 用户更新执行结果后网络断开时,应按照业务同步策略展示待同步状态,不提前展示服务端已成功。

8. 基本概念与信息结构

概念 含义
Schedule 具有完整开始时间和结束时间的日程
Schedule Time State 根据当前时间计算的日程阶段
Schedule Execution Result 用户明确确认的日程执行结果
UNCONFIRMED 尚未确认实际执行结果
COMPLETED 用户明确确认已经完成
NOT_COMPLETED 用户明确确认没有完成
CANCELLED Schedule 自身取消状态,不属于执行结果
Review Range 普通复盘查询的日期和时间范围
Review Summary 根据正式 Schedule 与 Execution Result 运行时生成的复盘结果
Review Group 已完成、未完成、待确认或已取消分组
Review Item Schedule 在普通复盘中的只读展示投影
Selected Date 首页当前选中的日期,可以作为默认复盘范围
Deterministic Review Service 负责查询、过滤、分组和统计的确定性模块
Agent Review Expression Agent 基于 Review Summary 生成的简短自然语言表达
Execution Result Update Candidate 等待用户确认的执行结果变更候选
Execution Result Audit 执行结果变更的最小审计记录
User
├─ Schedule[]
│  └─ Schedule Execution Result
└─ Review Summary(运行时视图)
   ├─ Review Range
   ├─ Completed Group
   ├─ Not Completed Group
   ├─ Unconfirmed Group
   └─ Cancelled Group

Schedule Time State

ScheduleTimeState
├─ UPCOMING
├─ IN_PROGRESS
└─ ENDED

状态计算:

current_time < start_at
→ UPCOMING

start_at <= current_time < end_at
→ IN_PROGRESS

current_time >= end_at
→ ENDED

Schedule Execution Result

ScheduleExecutionResult
├─ schedule_id
├─ result
├─ source
├─ version
├─ confirmed_at
├─ confirmed_by
├─ created_at
└─ updated_at

字段约束:

  • schedule_id:必须关联属于当前用户的正式 Schedule。
  • resultUNCONFIRMEDCOMPLETEDNOT_COMPLETED
  • source:手动、语音候选确认或其他受控来源。
  • version:用于并发更新校验。
  • confirmed_at:明确结果写入时间;UNCONFIRMED 时可以为空。
  • confirmed_by:执行确认的用户主体。
  • 一个 Schedule 当前只保留一个有效执行结果。
  • 执行结果变更可以保留审计历史。

Review Range

ReviewRange
├─ start_at
├─ end_at
├─ timezone
├─ range_type
└─ display_label

range_type 至少支持:

DAY
WEEK
CUSTOM

Review Summary

ReviewSummary
├─ range
├─ generated_at
├─ completed_count
├─ not_completed_count
├─ unconfirmed_count
├─ cancelled_count
├─ completed_items[]
├─ not_completed_items[]
├─ unconfirmed_items[]
├─ cancelled_items[]
└─ data_version

ReviewSummary 是运行时结果视图,P0 不作为独立长期业务对象持久化。

Review Item

ReviewItem
├─ schedule_id
├─ title
├─ start_at
├─ end_at
├─ place_summary
├─ schedule_status
├─ time_state
├─ execution_result
├─ execution_result_version
└─ reminder_summary

分组规则

Schedule.status == CANCELLED
→ cancelled_items

Schedule.status != CANCELLED
AND execution_result == COMPLETED
→ completed_items

Schedule.status != CANCELLED
AND execution_result == NOT_COMPLETED
→ not_completed_items

Schedule.status != CANCELLED
AND time_state == ENDED
AND execution_result == UNCONFIRMED
→ unconfirmed_items

time_state == UPCOMING
OR time_state == IN_PROGRESS
→ 不进入主要结果分组

执行结果优先级和异常组合需要由业务校验保证,普通复盘不自行修复正式数据。

9. Agent 输入输出约束

  • 系统中只有一个 Agent。
  • Agent 可以识别普通复盘查询意图。
  • Agent 可以解析“今天”“昨天”“本周”和明确日期范围。
  • Agent 无法确定范围时,可以使用当前 Selected Date 或进行必要追问。
  • 用户明确表达的日期范围优先于 Selected Date。
  • Agent 不能直接访问 Schedule 或 Execution Result 数据库表。
  • Agent 必须通过普通复盘受控查询能力获取 Review Summary。
  • 普通复盘查询属于只读操作,不需要用户确认。
  • Agent 输入至少可以包含用户文本、当前时间、用户时区和 Selected Date。
  • Agent 不生成 Schedule Execution Result。
  • Agent 不修改 Schedule Execution Result。
  • Agent 不生成 SQL。
  • Agent 不自行实现分组逻辑。
  • Agent 不自行计算统计数量。
  • Agent 不改变 Review Summary 中的对象和状态。
  • Agent 不把 ENDED 自动解释为 COMPLETED。
  • Agent 不把 UNCONFIRMED 自动解释为 NOT_COMPLETED。
  • Agent 不把 CANCELLED 解释为 NOT_COMPLETED。
  • Agent 不把 UPCOMING 或 IN_PROGRESS 加入执行结果统计。
  • Agent 可以生成简短总结,例如:
今天已经完成 2 项日程,1 项没有完成,还有 1 项执行结果待确认。
  • Agent 生成的数字必须与 Review Summary 完全一致。
  • Agent 不能编造未完成原因。
  • Agent 不能生成效率评分。
  • Agent 不能生成情绪判断。
  • Agent 不能生成带有医学、心理或绩效含义的评价。
  • Agent 可以提示用户存在待确认日程。
  • 用户要求修改待确认结果时,Agent 必须切换为执行结果写操作。
  • 执行结果写操作必须生成 Operation Candidate。
  • 候选至少包含 Schedule、当前结果、目标结果和对象版本。
  • 用户确认后,Agent 调用 Schedule 公共业务能力执行写入。
  • 写入成功后,重新调用普通复盘查询能力。
  • 写入失败时,Agent 不得声称复盘已经更新。
  • 修改对象不唯一时,Agent 必须要求用户选择。
  • 用户说“今天全部完成了”时,不自动批量修改。
  • Agent 服务不可用时,客户端仍可以展示确定性 Review Summary。
  • Review Summary 生成失败时,Agent 不得根据会话上下文自行补全结果。
  • P0 不要求 Agent 保存独立复盘报告。
  • 会话中展示过的普通复盘消息不作为后续统计事实来源。

Agent 查询输入

ReviewQueryInput
├─ user_id
├─ normalized_text
├─ current_time
├─ timezone
├─ selected_date
├─ requested_start_at
├─ requested_end_at
└─ range_type

确定性复盘输出

ReviewQueryResult
├─ review_summary
├─ query_status
├─ data_version
└─ error

Agent 表达输出

AgentReviewResponse
├─ summary_text
├─ review_summary_reference
├─ suggested_actions[]
└─ display_mode

suggested_actions P0 只允许:

  • 查看已完成列表。
  • 查看未完成列表。
  • 查看待确认列表。
  • 更新某一条 Schedule 执行结果。
  • 打开 Schedule 详情。

不得包含自动排期、批量标记或复杂建议。

10. 验收标准

复盘范围

  • 可以查询当前 Selected Date 的普通复盘。
  • 可以通过语音查询今天的复盘。
  • 可以通过语音查询昨天的复盘。
  • 可以查询本周复盘。
  • 可以查询明确开始日期和结束日期的复盘。
  • 日期范围按照用户时区计算。
  • 用户明确日期范围优先于 Selected Date。
  • 范围无法识别时进行必要追问或使用明确默认值。
  • 开始日期晚于结束日期时返回校验错误。
  • 超出允许最大范围时要求缩小范围。
  • 结果中明确展示当前复盘范围。

数据与分类

  • 复盘只查询当前用户的 Schedule。
  • 已删除 Schedule 不进入复盘。
  • COMPLETED Schedule 正确进入已完成。
  • NOT_COMPLETED Schedule 正确进入未完成。
  • ENDED + UNCONFIRMED 正确进入待确认。
  • UPCOMING Schedule 不进入完成结果统计。
  • IN_PROGRESS Schedule 不进入完成结果统计。
  • CANCELLED Schedule 不计入已完成或未完成。
  • 已取消 Schedule 可以单独展示。
  • 同一 Schedule 不会重复进入多个分组。
  • Reminder 是否触发不影响执行结果分类。
  • 通知是否点击不影响执行结果分类。
  • 地点围栏事件不影响执行结果分类。
  • Schedule 结束不会自动修改执行结果。
  • 所有分组规则由确定性代码执行。

数量与列表

  • 已完成数量与已完成列表长度一致。
  • 未完成数量与未完成列表长度一致。
  • 待确认数量与待确认列表长度一致。
  • 已取消数量与已取消列表长度一致。
  • Schedule 按开始时间稳定排序。
  • 每个 Review Item 可以进入对应 Schedule 详情。
  • 无 Schedule 时展示明确空状态。
  • 只有未开始或进行中 Schedule 时提示当前没有可复盘的日程。
  • 全部为待确认时明确提示用户补充结果。
  • 全部为取消状态时不显示错误完成率。
  • 数据部分加载失败时不展示伪完整统计。
  • 列表分页时总数正确。
  • 数据更新后统计和列表同时刷新。

执行结果更新

  • 可以从待确认列表发起标记已完成。
  • 可以从待确认列表发起标记未完成。
  • 可以将已完成修改为未完成。
  • 可以将未完成修改为已完成。
  • 可以恢复为待确认。
  • 语音结果变更生成操作候选。
  • 未确认前不修改正式 Execution Result。
  • 候选包含目标 Schedule 和前后结果。
  • 修改对象不唯一时不执行写入。
  • 使用旧版本候选时写入被拒绝。
  • 同一结果重复写入保持幂等。
  • 写入失败时复盘保留原数据。
  • 写入成功后自动重新计算复盘。
  • 结果变更记录来源和时间。
  • 批量执行结果修改不在 P0 自动执行范围。

Agent

  • Agent 可以识别“复盘一下今天”。
  • Agent 可以识别“看看昨天完成了什么”。
  • Agent 可以识别“本周有哪些没完成”。
  • Agent 通过受控能力获取 Review Summary。
  • Agent 不直接访问数据库。
  • Agent 不自行计算数量。
  • Agent 返回数量与确定性结果一致。
  • Agent 不把待确认描述为未完成。
  • Agent 不把取消描述为未完成。
  • Agent 不把已结束自动描述为已完成。
  • Agent 不编造未完成原因。
  • Agent 不生成效率评分。
  • Agent 不生成情绪判断。
  • Agent 不生成长期行为画像。
  • Agent 不改变 Review Summary 中的对象状态。
  • Agent 服务失败时结构化统计仍可展示。
  • Review Summary 查询失败时 Agent 不编造结果。
  • 普通复盘查询不需要用户确认。
  • 执行结果变更需要候选确认。

信息结构与入口

  • 首页可以提供当前 Selected Date 的普通复盘入口或摘要。
  • 不新增底部复盘 Tab。
  • 不新增独立一级复盘页面。
  • 用户可以通过底部中央语音按钮查询复盘。
  • 复盘结果可以展示在首页扩展区域、结果页或会话结果层。
  • 每个分组可以展开查看对应 Schedule。
  • 待确认列表提供执行结果更新入口。
  • 长列表支持滚动。
  • 复盘入口不遮挡首页日程和语音按钮。
  • 普通复盘不改变首页 Selected Date,除非用户主动选择其他日期。

数据边界

  • Review Summary 只能引用查询范围内真实的 Schedule 和 Execution Result。
  • Review Summary P0 不作为独立长期业务对象保存。
  • 历史会话中的复盘文本不作为业务事实来源。
  • 客户端缓存不作为最终统计来源。
  • Schedule Time State 与 Execution Result 明确分离。
  • 一个 Schedule 当前只保留一个有效 Execution Result。
  • Execution Result 变更可以保留审计历史。
  • 用户无权查看其他用户复盘。
  • 查询和统计使用统一时区规则。
  • 所有查询结果可以通过 Schedule ID 追溯。
  • Agent 表达可以被丢弃并重新生成,不影响正式复盘事实。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions