Update Tasks
Update a Specific Task
Update a Subtask
update-task command which replaces task information, the update-subtask command appends new information to the existing subtask details, marking it with a timestamp. The AI writes the appended text from your prompt; to save a note exactly as written, use taskgraph note.
Log a Progress Note
✓ Added a note to task 3 <title>. The note goes at the
end of the task’s details in an <info added on <time>> block, the same
block update-subtask writes, and nothing else in tasks.json changes.
<time> is an ISO 8601 UTC timestamp such as 2026-10-23T14:02:11.000Z,
repeated in the closing </info added on <time>> line. A note can be at
most 64 KB.
MCP clients use the add_note tool. Use update-subtask or
update-task --append when you want the AI to write the note instead.
Set Task Status
set-status lists the unchecked items and the --check command that clears them. --force marks the task done anyway. A subtask is gated by its own criteria only, and a parent whose last subtask finishes stays in progress until its own items are checked.
In Claude Code, the plugin’s /taskgraph:to-done <id> does the checking for you: the task-checker agent compares your changes with each numbered item, the ones it can show evidence for are checked, and the rest are reported to you. It then saves a three-line summary on the task (what changed, files, follow-ups) and marks it done. It never passes --force unless you ask.
When marking a task as “done”, all of its subtasks will automatically be marked as “done” as well.
Generate Task Files
Managing Task Dependencies
parse-prd has recorded where tasks came from, validate-dependencies also checks the PRD: it lists sections no task covers, tasks that cite a heading the PRD no longer has (renamed or removed), and tasks with no section. A task covers its section and the sections inside it. These are warnings: only dependency problems make the command exit 1.

