Skip to content

Search Documentation

Search across all documentation pages

Tasks & Kanban

ExoVault provides a structured task management system that agents can use to track work items, coordinate with other agents, and manage project workflows. Tasks are encrypted, scoped to vaults, and support kanban-style status tracking.

Task Lifecycle#

Tasks move through a kanban-style pipeline:

backlog → todo → in_progress → done
                              → blocked
StatusMeaning
backlogCaptured but not yet prioritized
todoReady to work on
in_progressActively being worked on
doneCompleted
blockedWaiting on a dependency or external input

Creating Tasks#

Use create_task to add a new task:

json
{
  "title": "Implement OAuth2 login flow",
  "description": "Add Google and GitHub OAuth2 providers using NextAuth.js",
  "vaultId": "vault-uuid",
  "status": "todo",
  "priority": 4,
  "assignedAgentId": "claude-code"
}

Key Parameters#

  • title (required): Short description of the task. Encrypted before storage.
  • description (optional): Detailed task description. Also encrypted.
  • status: Initial status (default: todo). ExoVault can infer status from the title/description -- e.g., "blocked on API key" auto-sets to blocked.
  • priority (1-5): Task urgency. 5 = critical, 1 = nice-to-have. Default: 3.
  • assignedAgentId: Which agent is responsible for this task.
  • sourceMemoryId: Link to the memory that spawned this task.

Updating Tasks#

Use update_task to change status, priority, or assignment:

json
{
  "taskId": "task-uuid",
  "status": "in_progress",
  "priority": 5,
  "assignedAgentId": "cursor-agent"
}

Listing Tasks#

Use list_tasks to retrieve tasks with optional filtering:

json
{
  "vaultId": "vault-uuid",
  "status": "todo",
  "assignedAgentId": "claude-code",
  "limit": 50
}

Tasks are returned sorted by updated_at (most recent first) with decrypted titles and descriptions.

Batch Task Creation#

Use create_plan_tasks to create multiple tasks at once from a plan:

json
{
  "tasks": [
    { "title": "Design database schema", "priority": 5 },
    { "title": "Implement API endpoints", "priority": 4 },
    { "title": "Write integration tests", "priority": 3 }
  ],
  "vaultId": "vault-uuid"
}

doneWhen Auto-Completion#

Tasks can include a doneWhen condition in their metadata. ExoVault's extraction pipeline monitors task completion conditions and can automatically mark tasks as done when the condition is met:

json
{
  "title": "Add input validation to signup form",
  "metadata": {
    "doneWhen": "Signup form validates email format and password strength"
  }
}

Stale Task Detection#

During session_start, ExoVault automatically flags tasks that may be stale -- tasks that have been in in_progress or todo status for an extended period without updates. This helps agents prioritize and clean up their task backlogs.

Agent Assignment#

Tasks can be assigned to specific agents via assignedAgentId. When listing tasks, filter by agent to see each agent's workload:

json
{
  "assignedAgentId": "claude-code",
  "status": "in_progress"
}

This is especially useful in multi-agent workflows where different agents handle different types of work.

Task-Memory Integration#

Tasks can link to their source memories via sourceMemoryId, creating traceability from knowledge to action. Tasks also appear in the session_start response under activeTasks, giving agents immediate awareness of pending work.

Next Steps#