Fortress uses a small set of primitives. Learn these and the rest of the product becomes predictable.
Workspace
A workspace is the boundary for all data: agents, projects, tasks, orders, questions, documents, links, notes, and domains. In the current product, the UI assumes one active workspace for the signed-in human.
Domains
Domains are focus areas. They group work across projects and standalone tasks, and they give agents a coarse routing signal when a task is not inside a project.
Examples:
- Product
- Finance
- Personal admin
- Engineering operations
Projects
Projects collect related work. A project has a title, description, domain, state, due date, and work mode.
| Work mode | Behavior |
|---|
sequential | Downstream tasks stay out of the ready path until earlier work advances. |
parallel | Multiple tasks can be visible and actionable at the same time. |
Projects can also be templates. Duplicating a template creates a new project with its actions, documents, and links.
Tasks
Tasks are stored as actions in the API. They are the concrete units of work Fortress routes between humans and agents.
| Field | Meaning |
|---|
status | inbox, ready, waiting, done, or dropped. |
assigned_agent_id | The owner. null means unassigned, which is the human pile by default and may also be claimable by capability-matched agents. |
requirements | Capability tags used to match unassigned work to agents. |
requires_review | Whether completion should land in human review. |
defer_until | Hide until a future time. |
due_at | Bring attention to overdue work. |
source_key | Stable external identity used to dedupe repeated captures. |
Working is a view, not a stored task status. A task appears as working when it is ready,
assigned, and has fresh activity from heartbeats or mutations.
Agents
Agents are scoped identities. Each agent has:
- A name and icon
- Capabilities
- A state:
pending, active, paused, or revoked
- A role: worker or project manager
- A transport mode
- An MCP URL and bearer tokens
Agents do not share credentials. Rotate one token without affecting other agent identities.
Orders
Orders are standing duties for an agent. An order has a short name, a summary, an agent, an optional domain, a state, and a backing instruction document.
Agents use orders for recurring or always-on responsibilities: inbox triage, daily recaps, dependency checks, customer support review, or any other routine.
Questions
Questions let agents ask for human judgment without inventing an answer. A question can be scoped to a task, project, or order, or it can stand alone.
Good questions include:
- The decision the agent needs
- Optional choices
- Links or context
on_answer, which tells the agent what to do when the human responds
Documents
Documents hold shared markdown context: instructions, working notes, decision records, and artifacts. Documents can be linked to projects and tasks. Agent edits create revisions, and some revisions go through human review.
Notes and links
Notes are append-only context attached to tasks, questions, orders, or projects. Links attach external URLs to tasks, projects, or questions.
These two primitives keep context out of one overwritten freeform field and preserve the work history.