---
name: Task Approve
slug: task-approve
category: Automation
description: Task Approve marks a task as done after L1 review passes. Use it to update the task file, event log, and dev plan status.
github: "https://github.com/Stanshy/AgentHub/tree/main/.knowledge/company/skill-templates/task-approve"
language: TypeScript
stars: 201
forks: 23
install: "npx degit https://github.com/Stanshy/AgentHub/tree/main/.knowledge/company/skill-templates/task-approve ~/.claude/skills/task-approve"
installs_to: ~/.claude/skills/task-approve
source_path: .knowledge/company/skill-templates/task-approve/SKILL.md
collection_size: 25
category_size: 1956
collection_url: "https://dirskills.com/collections/Stanshy/AgentHub"
added: 2026-09-05T05:30:50.701Z
last_synced: 2026-09-05T05:30:50.701Z
canonical_url: "https://dirskills.com/skills/task-approve"
---

# Task Approve

Task Approve marks a task as done after L1 review passes. Use it to update the task file, event log, and dev plan status.

**Install:**

```bash
npx degit https://github.com/Stanshy/AgentHub/tree/main/.knowledge/company/skill-templates/task-approve ~/.claude/skills/task-approve
```

## README

# 任務審核通過

L1 Review 通過後呼叫，將狀態從 `in_review` 改為 `done`。

## 使用方式
```
/task-approve <task-id> [備註]
```

## 參數
- `$0`: 任務 ID（如 `T5`）
- `$ARGUMENTS`: 完整參數（含備註）

## 格式規範（系統解析依賴，務必遵守）

### .tasks/ 狀態欄位
| 狀態值 | 說明 |
|--------|------|
| `done` | L1 審核通過 |

### dev-plan 第 10 節「結果」欄位（第 3 欄）
| 結果值 | 對應系統狀態 | 說明 |
|--------|-------------|------|
| `✅ 完成` | done | 審核通過 |

## 執行步驟

1. 找到對應的任務檔案（支援 Sprint 子目錄）：
使用 Glob tool 搜尋 `.tasks/**/$0-*.md`，若無結果再搜尋 `.tasks/**/$0.md`。
   取得檔案路徑後用 Read tool 讀取內容。

> 任務檔案可能在 `.tasks/sprint-{N}/T5-xxx.md`，不再只在 `.tasks/` 根目錄。

2. **取得真實時間（必要，不可跳過）**：
!`node -e "console.log(new Date().toISOString())"`
   > ⚠️ **禁止自行編造時間**。Agent 不知道真實時間，必須透過上述指令取得。將輸出存為變數 `$NOW` 供後續步驟使用。

3. 更新找到的任務檔案：
   - 將 `| 狀態 | ... |` 改為 `| 狀態 | done |`
   - 將 `| 完工時間 | ... |` 改為 `| 完工時間 | $NOW |`
   - **若找不到 `| 完工時間 |` 欄位**，在 `| 建立時間 |` 行之後插入 `| 完工時間 | $NOW |`

4. **事件紀錄（必要，不可跳過）**：在 `## 事件紀錄` 區塊底部 append：
   ```
   ### $NOW — 狀態變更 → done
   L1 審核通過。{備註}
   ```

5. **Git Merge（並行任務）/ 確認（循序任務）**：
   讀取任務檔的 `| 並行組 |` 欄位：

   **若 `並行組 = —`（循序任務）**：
   - code 已在 sprint-{N}，無需 merge
   - 輸出：`📌 循序任務，code 已在 sprint-{N}`

   **若 `並行組 = A/B/C...`（並行任務）**：
   - 取得 sprint 編號（從任務檔 Sprint 欄位）
   - 執行 merge：
     ```bash
     git checkout sprint-{N}
     git merge --no-ff task/s{N}-$0-{slug} -m "feat($0): {任務標題}"
     git branch -d task/s{N}-$0-{slug}
     ```
   - 若 merge 有衝突 → 停止，列出衝突檔案，由人工解決後繼續
   - 輸出：`🔀 task/s{N}-$0-{slug} 已 merge 進 sprint-{N}，branch 已刪除`

6. 找到當前 dev-plan：
   使用 Glob tool 搜尋 `proposal/sprint*-dev-plan.md`，取最新一份用 Read tool 讀取。

7. 在 dev-plan 第 10 節「任務完成紀錄」表格，找到對應任務行並更新：
```
| $0 | {YYYY-MM-DD} | ✅ 完成 | {備註} |
```

8. 輸出確認：
```
✅ $0 審核通過，狀態已更新為 done
```
