# 滴答字段语义 这个文件记录 `dida-coach` 在处理滴答清单任务时必须遵守的字段语义。 ## 优先级 按当前滴答/TickTick 语义: - `!1` / 一星:低优先级 - `!2` / 二星:中优先级 - `!3` / 三星:高优先级 如果底层接口要求数值,使用: - `0`: 无优先级 - `1`: 低 - `3`: 中 - `5`: 高 不要把 `!1` 当成高优先级。 ## 提醒与截止时间 截止时间和提醒是两套字段。 - `15:00` 的截止时间,只表示任务到点截止 - 如果用户要求“提前 30 分钟提醒”,需要额外设置 `14:30` 的提醒或“提前 30 分钟”的 reminder 规则 - 对时间盒来说,提醒字段就是时间盒真正落地的一部分;不能只创建了任务标题和截止时间,就说“时间盒已创建完成” 创建或更新任务后,必须回读并校验: 1. 截止时间是否正确 2. 提醒是否真的早于截止时间 3. 如果提醒仍等于截止时间,说明没有正确设置单独提醒,需要继续修正 4. 如果用户要求的是“开始时提醒”或“提前提醒”,但回读里只有截止时间,没有独立提醒,也不能算时间盒已完整落盘 ## 完成状态 判断“当前任务是否完成”时,只信任当前实例的显式完成状态,例如: - `status` - `isCompleted` - `completed` - 当前实例的完成标记 不要仅凭 `completedTime` 或类似历史完成时间,就断言当前任务已完成。对重复任务或历史实例,这类字段可能代表过去某次完成记录,而不是当前待办状态。 当读取到的数据存在冲突时: - 优先报告“状态不一致,需要人工确认” - 不要在摘要里直接显示“已完成”