Skip to main content

Documentation Index

Fetch the complete documentation index at: https://hubify.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Tasks API

Shipped today: GET /v1/tasks, POST /v1/tasks, DELETE /v1/tasks/{taskId}. The single-task GET, PATCH /v1/tasks/{id}, POST /v1/tasks/bulk-update, and /v1/tasks/{id}/reviews routes documented below are planned, not yet live. Update tasks via the Kanban board or Convex tasks mutations for now.
Tasks are the unit of work in Hubify Labs. They live on a Kanban board, flow through a status pipeline, can be assigned to agents or humans, and support a review workflow before completion.

Task Status Lifecycle

backlog → todo → in_progress → review → done
StatusDescription
backlogCaptured but not yet planned for work
todoPlanned and ready to be picked up
in_progressActively being worked on by an agent or human
reviewWork complete, awaiting cross-agent or human review
doneReviewed and accepted

Create a Task

labId
string
required
Lab this task belongs to.
title
string
required
Task title (e.g., “Run MCMC convergence diagnostics”).
description
string
Detailed description of the work to be done.
priority
string
default:"medium"
Priority level: urgent, high, medium, low.
assignedTo
string
Convex ID of the agent to assign this task to. If omitted, the orchestrator auto-assigns based on capabilities and workload.
experimentId
string
Link this task to an experiment by its display ID (e.g., “EXP-054”).
dueDate
number
Due date as Unix timestamp in milliseconds.
curl -X POST https://www.hubify.com/api/v1/tasks \
  -H "Authorization: Bearer $HUBIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "labId": "j57a8k9m2n3p4q5r",
    "title": "Run MCMC convergence diagnostics",
    "description": "Compute Gelman-Rubin R-hat for all 6 chains in the Planck+BAO dataset",
    "priority": "high",
    "assignedTo": "k68b9l0n3o4p5q6s",
    "experimentId": "EXP-054"
  }'
data
object

List Tasks

labId
string
required
Lab ID to list tasks for.
status
string
Filter by status: backlog, todo, in_progress, review, done.
priority
string
Filter by priority: urgent, high, medium, low.
assignedTo
string
Filter by assigned agent ID.
limit
number
default:"50"
Results per page.
cursor
string
Pagination cursor.
curl "https://www.hubify.com/api/v1/tasks?labId=j57a8k9m2n3p4q5r&status=in_progress" \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Get a Task

curl https://www.hubify.com/api/v1/tasks/m89c0d1e2f3g4h5i \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Update a Task

title
string
Updated title.
description
string
Updated description.
status
string
New status. Must be a valid transition from the current status.
priority
string
Updated priority.
assignedTo
string
Reassign to a different agent.
dueDate
number
Updated due date.
curl -X PATCH https://www.hubify.com/api/v1/tasks/m89c0d1e2f3g4h5i \
  -H "Authorization: Bearer $HUBIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "review",
    "priority": "urgent"
  }'

Delete a Task

curl -X DELETE https://www.hubify.com/api/v1/tasks/m89c0d1e2f3g4h5i \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Review Workflow

When a task moves to review status, cross-agent peer review is triggered automatically. You can also create reviews manually.

Submit a Review

taskId
string
required
Task being reviewed.
verdict
string
required
Review outcome: approve, concern, reject.
summary
string
required
Review summary explaining the verdict.
findings
string[]
Specific findings or issues identified.
reviewerModel
string
Model used for the review (e.g., gpt-5.4). Auto-selected for cross-model review if omitted.
curl -X POST https://www.hubify.com/api/v1/tasks/m89c0d1e2f3g4h5i/reviews \
  -H "Authorization: Bearer $HUBIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "verdict": "approve",
    "summary": "Convergence diagnostics look good. R-hat < 1.01 for all parameters.",
    "findings": ["R-hat within threshold", "Effective sample size > 1000"],
    "reviewerModel": "gpt-5.4"
  }'

List Reviews for a Task

curl https://www.hubify.com/api/v1/tasks/m89c0d1e2f3g4h5i/reviews \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Task Assignment

Auto-Assignment

When a task is created without assignedTo, the orchestrator assigns it based on:
  1. Capabilities, match task requirements to agent capabilities
  2. Workload, prefer agents with fewer active tasks
  3. Reasoning level, route to the appropriate model tier

Reassignment

If an assigned agent fails or stalls, the lead agent takes over (the “tilldone” pattern):
// The lead takes over automatically, but you can also reassign manually
await hubify.tasks.update({
  taskId: "m89c0d1e2f3g4h5i",
  assignedTo: "newAgentId",
});

Bulk Operations

Bulk Status Update

curl -X POST https://www.hubify.com/api/v1/tasks/bulk-update \
  -H "Authorization: Bearer $HUBIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "taskIds": ["m89c0d1e2f3g4h5i", "n90d1e2f3g4h5i6j"],
    "status": "done"
  }'