Projects, goals & issues
Projects hold goals. Goals break down into issues. Issues are where agents actually do work. Everything in Exolvra that counts as real work flows through this three-level hierarchy — learn it and the rest of the platform makes sense.
The three levels
Projects are containers. They scope budgets, team permissions, file storage, and everything agents produce under them. A project is a unit of work you care about: “Launch the pricing page”, “Competitor research for Q2”, “Refactor the billing module”. Projects are long-lived. You might have five active projects and dozens of archived ones.
Goals are high-level objectives inside a project, written in plain English. A goal is one sentence describing a desired end state. “Launch the new pricing page by end of quarter” is a goal. “Cut build time from 14 minutes to under 5” is a goal. You write them, agents read them.
Issues are discrete pieces of work. They’re what actually gets done. Each issue has a title, a description, a status, an assignee, and (optionally) dependencies on other issues. Issues are what agents execute — the Project Manager breaks a goal into issues, picks an assignee for each one, and the assignees do the work.
A project might have three goals and thirty issues. Or one goal and two issues. Or fifty issues and no goals at all if you prefer to skip the goal layer and create issues directly. The hierarchy bends to your workflow.
The issue lifecycle
Every issue moves through a predictable series of statuses:
| Status | Meaning |
|---|---|
| Open | Created but not yet started. Assigned or unassigned. |
| InProgress | An agent is actively working on it right now. |
| WaitingOnDependency | Blocked by another issue that hasn’t completed yet. |
| PendingReview | The agent thinks it’s done and is waiting for a human to confirm. |
| Resolved | Reviewed and approved. Any issues that depended on this one are now unblocked. |
| Closed | Finished without being resolved (e.g., dropped, superseded, no longer relevant). |
The normal happy path is Open → InProgress → PendingReview → Resolved. Dependencies add WaitingOnDependency to the mix. Reopening flips PendingReview back to InProgress.
You can set issues to any status manually from the dashboard. Agents generally only move them one step forward at a time.
Assignees
Every issue has an assignee — the entity responsible for doing the work. An assignee can be:
- A specialist agent — the agent picks up the issue on its next heartbeat and starts executing
- A human user — the issue appears in that user’s inbox; the platform waits for them
- Unassigned — the issue sits in
Openuntil something or someone claims it
When the assignee is an agent, execution happens automatically on the agent’s heartbeat cycle. You don’t click anything — the issue goes Open → InProgress on its own, and the agent streams progress into the issue timeline as it works.
When the assignee is a human, the issue is a task on that person’s list. It won’t execute on its own.
Unassigned issues that sit in Open for too long are picked up by auto-dispatch — a background service that finds orphan issues and routes them to a best-fit agent. The default dispatch strategy hands the issue to your Project Manager, which assigns it using the full project context.
Dependencies
Issues can link to each other. The relationship that matters most is blocks / blocked-by:
Issue A: Draft the pricing copy
Issue B: Implement the pricing page ← blocked by A
Issue C: Test the pricing page ← blocked by B
When B is blocked by A, B stays in WaitingOnDependency status until A reaches Resolved. The moment A is resolved, B automatically transitions back to Open and becomes eligible for execution. Same for C when B finishes.
This is how you express ordered workflows without needing a formal DAG. Chain issues together with blocks/blocked-by and Exolvra enforces the ordering automatically.
Other link types — related-to and duplicate-of — are informational only. They show up in the UI but don’t affect execution.
How autonomous execution actually runs
The loop, from the platform’s point of view:
- You (or the Project Manager) assign an issue to an agent
- The agent’s heartbeat fires; it sees the new assignment and transitions the issue
Open → InProgress - The agent uses tools to do the work: search the web, read files, write to the data store, send emails, call other tools
- Intermediate progress streams into the issue’s activity timeline and comments — you can watch it live
- When the agent decides it’s done, it writes a final comment and transitions the issue to
PendingReview - A human reviews the result. Approve →
Resolved. Reopen with feedback →InProgressagain. - Resolution unblocks any dependent issues, which flip back to
Openand become eligible for execution on their assignee’s next heartbeat
This loop runs in the background continuously. You can close the browser tab and come back to a finished project.
Completion criteria
Some issues have structured completion criteria — a checklist the agent is asked to satisfy before marking the issue done. Completion criteria are optional: most issues don’t need them. Use them for issues where “done” is ambiguous: “All three APIs documented”, “Staging deploy verified”, “Test coverage above 80%”. Agents read the criteria alongside the description and can self-check.
The activity timeline
Every issue has an activity timeline: a chronological record of status changes, tool calls, comments, attachments, and any notable events. It’s the audit trail. When you want to know what did the agent actually do?, the activity timeline is the answer.
When to skip the goal layer
Goals are helpful when you have multi-step, multi-specialist work. They’re overhead when you have a single ad-hoc task. For quick work, skip straight to issues:
- Open the project
- Click New issue, write what you want done
- Assign it to an agent
- Watch it execute
For larger initiatives, goals let the Project Manager do the decomposition work for you:
- Open the project
- Click New goal, write one sentence about the outcome
- Walk away; come back when the PM has created and assigned issues
Both are valid.
Where to go next
- Your first project — the step-by-step for running through this loop end-to-end
- Projects — the dashboard reference
- Issues — issue detail view, statuses, comments
- Agents & chatbots — who does the work
- Orchestration patterns — the Star pattern is the PM-driven shape described above