agkan-review
agkan-review
Overview
Workflow to retrieve tasks with Review status in agkan, check the merge/close status of GitHub PRs, and automatically update their status.
Workflow
1. Retrieve Review tasks
agkan task list --status review --json
2. Initialize summary counters
Before processing tasks, initialize the following counters to track results:
done_count = 0closed_count = 0skipped_open_count = 0no_pr_count = 0
3. Confirm PR URL for each task
First, extract the PR URL from the task body in the format PR: <URL>.
If no URL is found in the body, check the task metadata as a fallback:
agkan task meta list <id>
Use the value of the pr key if present.
If no URL is found in either the body or metadata, increment no_pr_count, skip the task and output a message indicating manual verification is needed.
4. Check PR status on GitHub
gh pr view <PR URL> --json state,mergedAt
| Field | Meaning |
|---|---|
state |
OPEN / CLOSED / MERGED |
mergedAt |
Merge date/time (null if not merged) |
5. Move status based on PR status
| PR State | agkan Status | Command | Counter |
|---|---|---|---|
MERGED |
done |
agkan task update <id> status done |
Increment done_count |
CLOSED (mergedAt is null) |
closed |
agkan task update <id> status closed |
Increment closed_count |
OPEN |
No change | Skip (still under review) | Increment skipped_open_count |
6. Display summary after all tasks are processed
After processing all tasks, display a summary of the results:
done: <done_count>件, closed: <closed_count>件, スキップ(OPEN): <skipped_open_count>件, PR未設定: <no_pr_count>件
Example output:
done: 2件, closed: 0件, スキップ(OPEN): 0件, PR未設定: 6件
5. Add comment recording the reason for status change
After updating status to done or closed, record the merge date/time and reason:
agkan task comment add <id> "<comment>"
Comment format by status:
| Status | Comment Example |
|---|---|
done |
Merged at <mergedAt>. PR was merged and task is complete. |
closed |
PR was closed without merging. Task moved to closed. |
Example commands:
# When merged
agkan task comment add <id> "Merged at 2026-03-22T10:00:00Z. PR was merged and task is complete."
# When closed without merge
agkan task comment add <id> "PR was closed without merging. Task moved to closed."
Decision Flow
Retrieve all Review tasks
↓
Initialize counters (done=0, closed=0, skipped_open=0, no_pr=0)
↓
Repeat for each task
↓
Does the body contain "PR: <URL>"?
Yes → Use that URL
No → Check metadata: agkan task meta list <id>
Does metadata contain "pr" key?
Yes → Use that URL
No → Increment no_pr_count → Skip (output message prompting manual verification)
↓
Check PR status
↓
What is the PR state?
MERGED → Move to done → Increment done_count → Add comment with mergedAt timestamp
CLOSED → Move to closed → Increment closed_count → Add comment noting PR closed without merge
OPEN → Skip (waiting for review) → Increment skipped_open_count
↓
Move to next task (repeat until all tasks are processed)
↓
Display summary: done: X件, closed: X件, スキップ(OPEN): X件, PR未設定: X件
Notes
- PR URL is first looked up in the task body in the format
PR: <URL> - If not found in the body, the
prkey fromagkan task meta list <id>is used as a fallback - If PR URL is not found in either location, prompt for manual verification (skip task)
donemeans successful completion,closedmeans suspended or withdrawn- The
ghcommand is required and will not work in environments where it is unavailable
More from gendosu/agkan-skills
agkan-planning-subtask
Use when reviewing a single backlog task to assess decomposition, implementation readiness, and priority ordering.
7agkan
Use when managing tasks with the agkan CLI tool - creating, listing, updating tasks, managing tags, blocking relationships, or tracking project progress with the kanban board.
6agkan-subtask
Use when a task has been selected and you need to implement it in an isolated (forked) context - handles in_progress update, branch creation, implementation, PR creation, and marking review.
6execute-subtask
[DEPRECATED] Use agkan-subtask instead. Use when a task has been selected and you need to implement it in an isolated (forked) context - handles in_progress update, branch creation, implementation, PR creation, and marking done.
6execute-add
[DEPRECATED] Use agkan-add instead. Use when adding a new task to the backlog — collects title, body, tags, priority, and parent task, then creates it with agkan.
6agkan-run-direct
Use when starting a development session to pick the highest priority Todo task from agkan, implement it directly without PR/branch, and mark it done.
6