Session End 技能 (工作階段結束)
描述
正確結束工作階段,確保所有狀態都被保存,下次可以無縫接續。
觸發條件
- •「收工」「下班」「今天到這」
- •「先這樣」「wrap up」
- •「bye」「done for today」
- •使用者表示要離開
🎯 執行流程
code
┌─────────────────────────────────────────────────────────────────────┐ │ Session End Workflow │ ├─────────────────────────────────────────────────────────────────────┤ │ Step 1: 檢查未完成的工作 │ │ Step 2: 儲存所有狀態到 Memory Bank │ │ Step 3: 提交或暫存程式碼變更 │ │ Step 4: 產出交接文件 │ │ Step 5: 最終確認 │ └─────────────────────────────────────────────────────────────────────┘
📋 Step 1: 檢查未完成工作
執行檢查:
bash
# 檢查 git 狀態 run_in_terminal(command="git status --short") # 檢查當前 Todo List manage_todo_list(operation="read") # 檢查是否有錯誤 get_errors()
分類未完成工作:
| 類型 | 處理方式 |
|---|---|
| 可以立即完成 | 完成它(< 5 分鐘) |
| 需要時間 | 記錄到 progress.md (Doing) |
| 被阻擋 | 記錄阻擋原因 |
| 可以放棄 | 確認後移除 |
📋 Step 2: 儲存狀態到 Memory Bank
2.1 更新 activeContext.md
markdown
# Active Context (Updated: YYYY-MM-DD HH:MM)
## 本次工作階段摘要
- 開始時間:{start_time}
- 結束時間:{end_time}
- 主要完成:{summary}
## 進行中的工作
<!-- 下次要繼續的任務 -->
- {task 1} - 進度:{percentage}%
- {task 2} - 狀態:{status}
## 待處理事項
<!-- 下次要處理的事情 -->
- [ ] {todo 1}
- [ ] {todo 2}
## 已知問題
<!-- 發現但未解決的問題 -->
- {issue 1}
## 相關檔案
<!-- 這次工作涉及的主要檔案 -->
- `{path/to/file1}` - {說明}
- `{path/to/file2}` - {說明}
2.2 更新 progress.md
markdown
## Done
### YYYY-MM-DD
- {完成項目 1}
- {完成項目 2}
## Doing
- {進行中項目} - {進度說明}
## Next
- {下一步 1}
- {下一步 2}
2.3 更新 decisionLog.md(如有重要決策)
markdown
## YYYY-MM-DD
### 決策:{標題}
- **背景**:
- **選項**:
- **決定**:
- **原因**:
📋 Step 3: 處理程式碼變更
3.1 檢視變更
bash
git status git diff --stat
3.2 決定處理方式
| 變更狀態 | 建議處理 |
|---|---|
| 完整功能 | 提交 (commit) |
| 半完成功能 | WIP 提交或 stash |
| 實驗性修改 | 暫存 (stash) |
| 不要的修改 | 還原 (checkout) |
3.3 提交(如適用)
bash
# 如果要提交,執行 git-precommit skill # 「準備 commit」
3.4 暫存(如不提交)
bash
git stash save "WIP: {描述}"
📋 Step 4: 產出交接文件
輸出格式:
code
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌙 工作階段結束報告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 日期:YYYY-MM-DD
⏱️ 時段:HH:MM - HH:MM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 今日完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. {完成項目 1}
- 修改:`{file1}`, `{file2}`
- 驗證:測試通過
2. {完成項目 2}
- 新增:`{file3}`
- 說明:{詳細說明}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔄 進行中(下次繼續)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. {任務名稱}
- 進度:60%
- 下一步:{具體步驟}
- 相關檔案:`{path}`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 待辦事項
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- [ ] {待辦 1}
- [ ] {待辦 2}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 注意事項
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- {需要注意的事項}
- {已知問題}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 Git 狀態
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Commits today: {N}
Latest: {commit_hash} - {message}
Pending: {clean / N files}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Memory Bank 已更新,下次可以無縫接續!
📋 Step 5: 最終確認
確認清單:
code
📋 收工檢查清單 □ Memory Bank 已更新 - [ ] activeContext.md ✅ - [ ] progress.md ✅ - [ ] decisionLog.md (如需要) □ 程式碼狀態 - [ ] 已提交 / 已暫存 / 無變更 □ 交接文件 - [ ] 完成報告已產出 - [ ] 下次工作方向明確 □ 無遺漏 - [ ] 所有變更都有記錄 - [ ] 所有決策都有記錄
⚠️ 重要提醒
不要做的事
- •❌ 直接關閉對話不說再見
- •❌ 有未保存的工作就離開
- •❌ 忘記更新 Memory Bank
- •❌ 留下未提交的重要變更
一定要做的事
- •✅ 更新 Memory Bank
- •✅ 處理 git 狀態
- •✅ 產出交接報告
- •✅ 確認下次可以接續
💡 快速收工模式
如果時間緊迫,至少要做:
bash
# 1. 快速更新 progress.md replace_string_in_file(...) # 更新 Doing 區塊 # 2. git 狀態 git stash save "WIP: quick save" # 3. 簡短報告 echo "今日完成:X, Y, Z。進行中:A。下次:B, C。"
📌 常用短語對應
| 使用者說 | 執行動作 |
|---|---|
| 「收工」 | 完整 session-end 流程 |
| 「先這樣」 | 完整 session-end 流程 |
| 「快速收工」 | 快速模式 |
| 「我要離開了」 | 完整 session-end 流程 |
| 「checkpoint 然後收工」 | memory-checkpoint → session-end |