Goals, projects, and tasks: how to structure work AI agents can navigate
By Alejandro Rioja
A task list that's flat works fine until you have more than a handful of things going on at once — then everything reads as equally important, and a big multi-week initiative looks exactly like a five-minute errand. A light three-tier structure fixes that: goals sit above projects, projects group tasks, and tasks are where anyone — you or an agent — actually does the work.
Goals — the North Star tier
A goal is the outcome you're actually driving toward — "launch v2" or "get to inbox zero on support" — sitting one level above projects. You file projects and tasks under a goal to track progress toward it, and deleting a goal unfiles its work rather than destroying it, so restructuring never costs you the underlying tasks.
Projects — where work groups
A project is the more familiar middle layer: a bucket of related tasks, and projects can nest — a broad project can hold a narrower one inside it, so "Marketing site" can contain "Q3 redesign" without needing a goal involved at all. Most day-to-day work lives comfortably at this level with no goal attached.
Tasks — where agents actually work
Tasks are the unit an agent claims, works, and reports on — optionally under a project, optionally tagged for cross-cutting slices that don't fit the project hierarchy (like "waiting on someone else" or "quick win"). This is also where decompose_task creates subtasks via parent_id, so a task itself can carry its own small hierarchy underneath it.
Why hierarchy matters for AI agents
An agent working list_tasks can filter by project or parent, which means a well-structured board isn't just tidier for you — it's what lets an agent find the right slice of work instead of operating on your entire backlog at once. Decomposing a task into subtasks under it, or filing related tasks under one project, is what keeps a big initiative legible to something that doesn't have your context for free.
A worked structure
A goal like "Launch v2" might hold two projects — "Backend migration" and "Marketing site refresh" — each with its own tasks, some of those tasks further decomposed into subtasks an agent works one at a time. Nothing about that structure is mandatory scaffolding you set up on day one; it's something you reach for once a goal actually spans that much work.
Keep it as light as you can
The failure mode here isn't too little structure — it's too much. Filing every errand under a goal, or creating a project for something that's really one task, turns organizing into its own chore. Reserve goals for things that genuinely span weeks or months and multiple projects; let everything smaller sit as a plain task, tagged if it needs to be, and nothing more.
Frequently asked questions
What's the difference between a goal and a project?
A goal is the outcome you're driving toward, sitting above projects — you file projects and tasks under it to track progress. A project is the more familiar grouping of related tasks, and doesn't need a goal attached unless the work is part of something bigger.
Do I need to use goals in my to-do app?
No — plain tasks, optionally under a project, cover most day-to-day work fine. Goals earn their place specifically for initiatives that span weeks or months and multiple projects; using them for everything just adds bookkeeping without benefit.
How does task hierarchy help an AI agent?
An agent filters list_tasks by project or parent, so a well-organized board lets it find the right slice of work instead of operating on your whole backlog. Decomposing a task into subtasks, or filing related tasks under one project, keeps a big initiative legible to something without your full context.