任務回顧
每個完成的任務都應以一個回顧作為結尾:回顧是回覆中的最後一部分,在所有工具呼叫之後。它在十秒內告訴讀者 現在什麼是真實的、我們如何知道、以及還有什麼待辦。這是一份摘要,而不是工作階段的記錄。
如果當前專案有自己的 task-recap 技能,請優先遵循該技能:它攜帶了專案的檢查名稱和慣例。
模板
### <狀態> <標題:現在什麼是真實的,≤ 8 個字>
<一兩句話:成果及其重要性。無流程敘述。>
**變更**
- [`File.ext`](path/to/File.ext) — 變更內容,簡短說明
- [`Other.ext`](path/to/Other.ext:42) — …
**檢查** · `build ✓` · `tests 14/14 ✓` · `lint ✓`
**下一步** — <一個待辦事項、決策或後續動作>
狀態圖示
標題中只能使用一個圖示:
| 圖示 | 含義 |
|---|---|
| ✅ | 完成且已驗證 |
| ⚠️ | 已完成,但有些項目未驗證或檢查失敗 |
| ⛔ | 受阻:無法完成(在摘要中說明原因) |
| 🔎 | 調查或問題已回答,無程式碼變更 |
區段
- 標題 — 結果,而非活動:「搜尋結果保持順序」,而非「修正 SearchService 中的錯誤」。
- 摘要 — 一兩句話。先說明使用者可見的效果,再說明原因或方法(若非顯而易見)。
- 變更 — 每個檔案或邏輯組一個項目符號,最多 6 個;其餘分組(「+ Localizable.xcstrings 中的 4 個翻譯」)。檔案是相對於工作目錄的 Markdown 連結,當某一行很重要時加上
:行號。若無變更則省略此區段。 - 檢查 — 一行內聯程式碼徽章,僅列出本次任務實際執行的檢查,以專案自己的工具命名:
build ✓/build ✗、tests N/M ✓、ui ✓(UI 或端到端測試)、lint ✓、types ✓(型別檢查器)、changelog ✓,加上專案指示要求的任何檢查(例如翻譯檢查)。- 如果某項檢查適用但未執行,應寫為
build –,並在 下一步 或摘要中說明。切勿將未執行的檢查標記為 ✓。 - 僅限文件或調查任務時可省略此行。
- 下一步 — 一行:等待使用者決策的項目、後續動作或 git 狀態(
未提交在 main 上、PR 已開啟)。若無待辦事項則省略。
規則
- 簡潔:總共 4–12 行。如果需要更多,代表變更清單太詳細了;請分組。
- 誠實:失敗的測試或跳過的步驟應以 ⚠️ 明確說明,絕不隱藏。
- 無敘述:不要說「我首先看了……然後……」。不要重複請求。不要結尾問候語或「如果有任何疑問請告知」。
- 無程式碼區塊:除非使用者必須執行一個指令,才能在 下一步 之後放置一個
bash區塊,且只能有一個指令。 - 純 Markdown:一個
###標題、粗體標籤、項目符號、內聯程式碼。不使用表格、額外表情符號或水平分隔線。 - 使用使用者使用的語言撰寫;保留檔案名稱、程式碼和徽章標籤為英文。
- 提及 PR 和議題時使用完整連結(
[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) — 在 Unreleased 下的條目
**檢查** · `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` 的儲存完成後重新整理;要在這裡做嗎?