Skip To Main Content
All modules

Projects

Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.

Projectproject

A multi-step outcome with milestones and progress. The same operations reach the work items on its board (type 'task').

projects_findFindthrough vritto_find

Read Projects: one project by id (with its task rows), projects filtered by text, status, priority, tag or area, or with type 'task' project tasks by projectId, text, status, priority, tag or dueOnOrBefore. ALWAYS pass dueOnOrBefore when the question concerns near-term work. Compact rows unless detail is 'full'.

Note: type 'task' reads project tasks; one project by id comes with its task rows.

FieldTypeDescription
typeone of project, task'project' (default) or 'task', a work item on a project's board.
idstringReturn just this project (with its task rows) or, with type 'task', this project task.
querystringSearch query.
statusone of planned, active, paused, completed, cancelled, todo, in_progress, blocked, doneA project status, or with type 'task' a task status (todo, in_progress, blocked, done, cancelled).
priorityone of low, normal, high, urgent
tagstringExact tag filter.
areastringArea filter (projects).
projectIdstringProject tasks of this project; sent alone, this project with its task rows.
dueOnOrBeforestringOnly open project tasks due on or before this date (YYYY-MM-DD), for near-term views like 'project work due this week'.
detailone of summary, fullRow shape: "summary" (default, compact rows) or "full" (every field incl. summary/outcome text, milestones and complete notes).
includeArchivedbooleanInclude archived (deleted) records; default false.
limitintegerMax records to return (default 50 in summary mode).
Example input
{
  "status": "active"
}
projects_addCreatethrough vritto_create

Add a project for a serious multi-step outcome (never for a one-off task): name, summary, outcome (definition of done), status, priority, area, startDate/targetDate (YYYY-MM-DD), tags and milestones. Or a work item on a project's board: task with projectId and title, plus status, priority, dueDate, effortPoints, assignees and tags. Example: project { name 'Launch Vritto beta', status 'active', targetDate '2026-08-01', tags ['work'] }.

Note: type 'task' with task { projectId, title } adds a work item to a project's board.

FieldTypeDescription
typeone of project, task'project' (default) or 'task', a work item on a project's board.
projectobjectProject fields; name is required.
project.name*stringProject name.
project.summarystringShort description.
project.outcomestringDefinition of done or desired outcome.
project.statusone of planned, active, paused, completed, cancelledProject status (default 'active').
project.priorityone of low, normal, high, urgent
project.areastringArea or domain.
project.startDatestringLocal date YYYY-MM-DD.
project.targetDatestringLocal date YYYY-MM-DD.
project.tagslist of stringTags.
project.ownerPersonIdslist of stringOwner person IDs.
project.linkedRefslist of objectLinked module records.
project.milestoneslist of objectProject milestones.
project.progressintegerProgress percent; task-weighted automatically when project tasks exist.
project.favoritebooleanFavorite project.
project.idempotencyKeystringStable dedupe key.
taskobjectProject task fields (type 'task'); projectId and title are required.
task.projectId*stringOwning project ID.
task.title*stringTask title.
task.notesstringSupporting notes.
task.statusone of todo, in_progress, blocked, done, cancelled
task.priorityone of low, normal, high, urgent
task.dueDatestringLocal date YYYY-MM-DD.
task.effortPointsintegerRelative effort estimate used for workload and weighted progress.
task.assigneePersonIdslist of stringAssignee person IDs.
task.tagslist of stringTags.
task.sortOrdernumberBoard sort order.
task.linkedTaskIdstringLinked Tasks-module task ID.
task.idempotencyKeystringStable dedupe key.
Example input
{
  "project": {
    "name": "Kitchen remodel",
    "outcome": "A kitchen we cook in every night",
    "status": "active",
    "targetDate": "2027-03-01"
  }
}
projects_changeUpdatethrough vritto_update

Change one project by id, or with type 'task' one project task: only the fields in patch change (status 'done' finishes a task; progress is task-weighted on its own). publishToTasks copies and links a project task into the general Tasks list, only when the user explicitly asks. Resolve the id with projects_find first.

Note: type 'task' changes a project task; publishToTasks copies and links it into Tasks.

FieldTypeDescription
typeone of project, task'project' (default) or 'task', a work item on a project's board.
idstringThe project (or project task) to change. Required.
patchobjectFields to change; nothing else is touched.
patch.namestringProject name.
patch.summarystringShort description.
patch.outcomestringDefinition of done or desired outcome.
patch.statusone of planned, active, paused, completed, cancelled, todo, in_progress, blocked, doneA project's status (planned, active, paused, completed, cancelled) or a project task's (todo, in_progress, blocked, done, cancelled).
patch.priorityone of low, normal, high, urgent
patch.areastringArea or domain.
patch.startDatestringLocal date YYYY-MM-DD.
patch.targetDatestringLocal date YYYY-MM-DD.
patch.tagslist of stringTags.
patch.ownerPersonIdslist of stringOwner person IDs.
patch.linkedRefslist of objectLinked module records.
patch.milestoneslist of objectProject milestones.
patch.progressintegerProgress percent; task-weighted automatically when project tasks exist.
patch.favoritebooleanFavorite project.
patch.idempotencyKeystringStable dedupe key.
patch.projectIdstringOwning project ID.
patch.titlestringTask title.
patch.notesstringSupporting notes.
patch.dueDatestringLocal date YYYY-MM-DD.
patch.effortPointsintegerRelative effort estimate used for workload and weighted progress.
patch.assigneePersonIdslist of stringAssignee person IDs.
patch.sortOrdernumberBoard sort order.
patch.linkedTaskIdstringLinked Tasks-module task ID.
publishToTasksbooleantrue copies and links this project task into the Tasks module (type 'task'), only on an explicit ask.
expectedRevisionintegerRevision guard from the last read.
projectIdstringOlder name for a project's id.
projectTaskIdstringOlder name for a project task's id.
statusone of todo, in_progress, blocked, done, cancelledOlder form: a project task's new status, with projectTaskId.
sortOrdernumberOlder form, with status: the board sort order.
projectobjectOlder whole-project form: the project with its id; absent fields keep their stored values.
project.id*string
Example input
{
  "id": "proj_kitchen",
  "patch": {
    "targetDate": "2027-04-01",
    "status": "paused"
  }
}
projects_removeDeletethrough vritto_delete

Delete a project (cancelled and archived with its board), or with type 'task' cancel one project task. Only for explicit deletion requests. Resolve the id with projects_find first.

Note: type 'task' cancels one project task; a project goes with its board.

FieldTypeDescription
typeone of project, task'project' (default) or 'task', a work item on a project's board.
idstringThe project (or project task) to remove.
expectedRevisionintegerRevision guard from the last read.
projectIdstringOlder name for id.