--- name: deferred-decisions description: >- 记录开发中被延期的技术方案/决策,并在关联任务出现时主动提醒用户。 当对话中出现"以后再做"、"先不做"、"defer"、"延期方案"、"备选方案"、 "递进方案"等语义时触发。也用于浏览、管理已有的 deferred items。 --- # Deferred Decisions Skill 追踪开发中被延期的技术方案,在合适时机主动提醒用户。 ## 存储 **数据文件**: `.cursor/deferred/registry.md` 该文件是 Agent 的结构化记忆,不是面向人类的文档。每个 deferred item 是一个 H3 级标题块。 ## 操作 A:记录延期方案 ### 触发识别 当对话中出现以下模式时,Agent 应主动提议记录: - 讨论了多种方案,选择了一种,明确说其余"以后再做" - 实现了基础版本,提到了可递进升级的高级版本 - 发现了可以改进的点,但当前优先级不够 ### 流程 ``` 1. 从对话中提炼: - 选择了什么方案(chosen_alternative) - 延期了什么(标题 + context) - 为什么延期(deferred_reason) - 什么时候可以做(prerequisite) - 涉及哪些领域(tags)和文件(related_files) 2. 生成 slug 形式的唯一 ID(如 ecosystem-lod-switching) 3. 读取 .cursor/deferred/registry.md(不存在则用模板创建) 4. 在 "## Active Items" 区域末尾、"---" 分隔线之前追加新条目 5. 向用户确认已记录,展示条目摘要 ``` ### 条目模板 ```markdown ### [item-slug] 简短标题 - **status**: deferred - **tags**: tag1, tag2, tag3 - **recorded**: YYYY-MM-DD - **source_chat**: [简短描述](chat-uuid) - **prerequisite**: 实施前提条件(可选,无则写 "无") - **related_files**: - path/to/file1 - path/to/file2 - **context**: | 延期方案的具体内容,2-5 行描述。 包含方案的要点和实施思路。 - **chosen_alternative**: 当时选择的方案简述 - **deferred_reason**: 延期的原因 ``` ### 字段说明 | 字段 | 必填 | 说明 | |---|---|---| | ID(方括号内) | 是 | slug 形式,全局唯一 | | status | 是 | `deferred` / `reminded` / `in_progress` / `done` / `cancelled` | | tags | 是 | 逗号分隔的领域标签,用于关联匹配 | | recorded | 是 | 记录日期 | | source_chat | 否 | 来源对话标识 | | prerequisite | 否 | 实施前提条件 | | related_files | 否 | 关联代码文件路径 | | context | 是 | 延期方案的具体内容 | | chosen_alternative | 是 | 当时选择了什么 | | deferred_reason | 是 | 延期原因 | ## 操作 B:关联提醒 ### 触发条件 由 `.cursor/rules/common/deferred-recall.mdc` 触发,或当用户任务涉及已有 deferred item 的领域时自动触发。 ### 流程 ``` 1. 读取 .cursor/deferred/registry.md 2. 提取当前任务的关键词和涉及文件 3. 匹配 status=deferred 的 items: - tags 与当前任务关键词有交集 - related_files 与当前任务涉及文件有重叠 - prerequisite 描述的条件可能已满足 4. 如匹配到,在回复开头简要提醒: "提醒:你之前有一个延期方案 [item-title] 与当前任务相关。要一并处理吗?" 5. 如用户同意,将该 item 的 status 改为 in_progress ``` ### 提醒原则 - 每个 item 在同一会话中最多提醒一次 - 只提醒 status=deferred 的 items(reminded/in_progress 不重复提醒) - 提醒应简洁,不打断用户的主线任务 ## 操作 C:状态管理 | 用户动作 | 状态变更 | 额外操作 | |---|---|---| | "开始做 X" | deferred → in_progress | 无 | | "X 完成了" | in_progress → done | 移到 "Completed / Cancelled Items" 区域 | | "X 不需要了" | any → cancelled | 移到 "Completed / Cancelled Items" 区域 | | Agent 提醒后用户确认 | deferred → in_progress | 无 | ### 移动条目 将条目从 "Active Items" 剪切到 "Completed / Cancelled Items" 区域时,保留完整内容,仅修改 status。 ## 操作 D:浏览/回顾 当用户问"有哪些延期方案"、"deferred list"、"待办方案"等时: ``` 1. 读取 registry.md 2. 列出所有 status=deferred 的 items 摘要表: | ID | 标题 | Tags | 记录日期 | 前提条件 | 3. 如用户要求按 tag 过滤,只展示匹配项 ``` ## Registry 文件模板 当 `.cursor/deferred/registry.md` 不存在时,用此模板创建: ```markdown # Deferred Decisions Registry ## Active Items (暂无延期方案) --- ## Completed / Cancelled Items (暂无已完成或已废弃的方案) ``` ## 自迭代日志 本节记录使用本 Skill 过程中发现的必要检查项。 ### 已知必要检查 (暂无)