Skip to content

Data model

TaskTree is built from a few simple ideas. Once these click, both views make sense.

Tasks

A task is one piece of work. It has a title and, optionally, a description, a stage, a status, one or more assignees, and start and due dates. Tasks are what you see as rows in the list and as boxes on the canvas — the same tasks, shown two ways.

Parents and children

Tasks form a tree. A task can sit under a parent, and a parent can have any number of children. This is how you break big work into smaller pieces: a parent task like "Build the tester rig" might have children for the frame, the wiring, and the firmware.

  • On the canvas, parent and child are connected by a line, with children branching out below.
  • In the list, children are indented under their parent.

A task with no parent is a top-level task — a root of the tree. A task can have only one parent, and the tree can't loop back on itself (a task can't end up being its own ancestor), so TaskTree refuses any change that would create a loop.

You can change a task's parent at any time — see Drawing dependencies and re-parenting.

Dependencies

A dependency is a different kind of link: it says one task can't be done until another is. We describe it as blocks / blocked by:

  • If task A blocks task B, then B is blocked by A — B has to wait for A.

Dependencies are separate from the parent/child tree. Two tasks in completely different branches can still depend on each other. On the canvas they show as dashed arrows pointing from the blocker to the task it blocks. Like the tree, dependencies can't form a loop.

How it all fits

Put together:

  • Stages and statuses label what phase a task is in and how it's going — see Statuses and stages.
  • Parent/child organises tasks into a tree of work and sub-work.
  • Dependencies capture ordering — what has to finish before what — across the whole project, regardless of the tree.

That's the whole model. Everything in TaskTree — the canvas tree, the list, the timeline, the filters — is a different view onto these same tasks and the links between them.