任务回顾
每项完成的任务结束时只生成一条回顾:作为回复中的最后一条内容,位于所有工具调用之后。它让读者在十秒内了解当前状态、验证方式以及下一步行动。这是总结,不是会话日志。
如果当前项目有自己的 task-recap 技能,请优先遵循该技能,因为它包含了项目的检查名称和约定。
模板
### <状态图标> <标题:当前状态,不超过 8 个词>
<一两句话:成果及其重要性。不叙述过程。>
**变更**
- [`File.ext`](path/to/File.ext) — 简要说明变更内容
- [`Other.ext`](path/to/Other.ext:42) — …
**检查** · `build ✓` · `tests 14/14 ✓` · `lint ✓`
**下一步** — <一个待定事项、决策或后续工作>
状态图标
标题中仅使用一个图标:
| 图标 | 含义 |
|---|---|
| ✅ | 完成并已验证 |
| ⚠️ | 已完成,但某项未验证或检查失败 |
| ⛔ | 受阻:无法完成(在总结中说明原因) |
| 🔎 | 调查或问题已解答,未更改代码 |
章节
- 标题 — 结果,而非活动:例如“搜索结果保持顺序”,而不是“修复 SearchService 中的 Bug”。
- 总结 — 一两句话。首先指出用户可见的效果,然后说明原因或方法(如果非显而易见)。
- 变更 — 每个文件或逻辑组一个项目符号,最多 6 个;其余归并(例如“+ 4 个翻译在
Localizable.xcstrings”)。文件是相对于工作目录的 Markdown 链接,当某个位置重要时使用:line。若无变更则省略该章节。 - 检查 — 一行内联代码徽章,仅包括本次任务实际运行的项目自身工具:
build ✓/build ✗、tests N/M ✓、ui ✓(UI 或端到端测试)、lint ✓、types ✓(类型检查器)、changelog ✓,以及项目说明要求的任何检查(例如翻译检查)。- 适用但未运行的检查写作
build –,并在下一步或总结中说明。切勿标记 ✓ 未运行的项目。 - 对于仅文档或调查任务,省略检查行。
- 下一步 — 一行:待用户决定的决策、后续工作或 Git 状态(例如
未提交到 main 分支、PR 已打开)。无待办事项时省略。
规则
- 简洁:总计 4–12 行。如果需要更多,说明变更列表过于详细,应合并。
- 诚实:失败的测试或跳过的步骤需明确标注 ⚠️,绝不隐藏。
- 不叙述过程:不要写“我先看了…,然后…”。不要重复请求。不要包含结束问候语或“如有需要请告知”。
- 不使用代码块,除非用户需要运行命令;此时使用一个
bash代码块,包含一条命令,放在下一步之后。 - 仅用纯 Markdown:一个
###标题,加粗标签,项目符号,内联代码。不要表格、不要多余的表情符号、不要水平分割线。 - 以用户使用的语言书写;文件名、代码和徽章标签保留英文。
- 引用 PR 和 Issue 时使用完整链接(例如
[owner/repo#94](https://github.com/owner/repo/pull/94)),绝不要仅用#94。 - 在 Claude 桌面应用中,回顾是在
wrap_up调用之后编写的结束消息;不会重复下一步框中显示的问题。
示例
一个功能:
### ✅ 个人资料页面显示注册日期
个人主页现在在用户名下方显示用户的注册日期,并根据用户区域设置进行格式化。
**变更**
- [`ProfileHeader.swift`](Sources/Profile/ProfileHeader.swift) — 注册日期标签
- [`Localizable.xcstrings`](Sources/Profile/Resources/Localizable.xcstrings) — `Joined %@` 字符串
- [`CHANGELOG.md`](CHANGELOG.md) — 在未发布章节下添加条目
**检查** · `build ✓` · `tests 32/32 ✓` · `lint ✓`
**下一步** — 未提交到 `feature/profile-join-date` 分支;准备打开 PR。
一个部分结果:
### ⚠️ 上传进度在后台运行后仍然保持
进度现在基于服务器确认的字节数而非本地计数器,因此应用挂起后进度仍然正确。
**变更**
- [`UploadViewModel.swift`](Sources/Upload/UploadViewModel.swift:58) — 进度从 `acknowledgedBytes` 读取
**检查** · `build ✓` · `tests 11/12 ✗` · `lint ✓`
**下一步** — `testPauseResume` 仍期望旧计数器;更新测试还是保留旧的暂停行为?
一个调查:
### 🔎 仪表板延迟是由于缓存保存滞后
仪表板在后台保存完成之前读取缓存,因此直到下次刷新才会显示最新数据。
**下一步** — 修复方法:在 `SyncService` 中保存完成后刷新;在此处修复吗?