Parse PRD
--force numbers the new tasks from 1; --append continues after the highest existing ID. With --append, Claude sees the existing tasks’ IDs and titles, so a new task can depend on one of them. The new tasks are added to the tag as it is when they are saved: a change another command or agent made to the tag while Claude was working is kept, and the new tasks take the next free IDs after it.
Each task records the PRD section it came from in metadata.source, such as docs/prd.md#authentication, and taskgraph show prints it.
Re-running --append on a PRD you edited sends Claude only the sections added since the last parse, so existing tasks aren’t duplicated. Sections whose text changed and sections you removed are listed with the tasks that came from them; those tasks are left as they are for you to review. An unchanged PRD makes no AI call and adds no tasks:
--append, Claude decides how many tasks the new sections need; --num-tasks applies to whole-PRD parses.
--clarify asks up to 5 questions about requirements the PRD leaves open (the data store, sign-in, platforms, scope), each with a suggested answer. Press Enter to keep the suggestion. The answers are saved in the PRD under ## Clarifications, then the tasks are generated from it, so the decisions stay in the repo:
--yes, the suggested answers are used. If there is nothing to ask, it goes straight to the tasks. Ctrl-C leaves the PRD unchanged.
--clarify --json prints only {"prd", "questions": [{"question", "suggestedAnswer"}]} and changes nothing. Add an "answer" to each question and pass the file to --answers (or - for stdin); a question without an "answer" keeps its suggestion. --answers saves the answers and generates the tasks without asking the model for questions again.
Each task comes with 2-5 acceptance criteria taken from the PRD, all unchecked. taskgraph show <id> numbers them, and set-status done waits until they are checked off (see Set Task Status).
Add a New Task
Expand Tasks
taskgraph set-status <id> --check <n>.
--force replaces a task’s subtasks. Dependencies and related / discovered-from links on the old subtasks are dropped first, so they don’t end up naming the new subtasks that reuse their IDs.
Clear Subtasks
related / discovered-from links to them, are dropped too, as remove-task and remove-subtask do.

