Complete Task
Mark a task as completed using the taskmd CLI.
Instructions
The user's query is in $ARGUMENTS (a task ID like 077). If $ARGUMENTS is empty or does not contain a task ID, infer the task from conversation context (e.g., the task currently being worked on). If the task cannot be determined, ask the user which task to complete.
- Read the task file to understand the full task scope:
- Run taskmd get <ID> to get the task contents - Identify all subtask checklists (- [] / - [x] items) in the task body - Identify any acceptance criteria section
- Verify subtasks and acceptance criteria are met:
- Review each subtask checklist item — confirm the work has been done - Review each acceptance criterion — confirm it is satisfied - Check off (- [x]) any items that are complete but not yet checked off by editing the task file - If any items are genuinely incomplete, report them to the user and ask how to proceed — do NOT mark the task as completed
- Add a final worklog entry (if worklogs are enabled):
- Check .taskmd.yaml for worklogs: true -- only create worklogs if explicitly enabled; skip this step otherwise - Otherwise, find the worklog file at tasks/<group>/.worklogs/<ID>.md (or tasks/.worklogs/<ID>.md) - If a worklog exists, append a timestamped completion summary
- Check the workflow mode in
.taskmd.yaml:
- If workflow: pr-review is set, use taskmd set $ARGUMENTS --status in-review instead of completed (note: in pr-review mode, tasks are completed by merging the PR, not by setting status directly) - Otherwise (default solo mode), run taskmd set $ARGUMENTS --status completed --verify - The --verify flag runs any verification checks defined in the task before applying the status change - If verification fails, report the failures to the user
- Confirm the status change to the user