Goals
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.
Goalgoal
A goal with progress, milestones, check-ins, and links.
goals_getGoalFindthrough vritto_findFetch one goal by ID, including its metric values, milestones, and check-ins. Use only when the goal ID is already known.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
goals_queryGoalsFindthrough vritto_findSearch goals with optional text query and status/priority/horizon/area/tag filters, e.g. { status: "active", limit: 20 }. Cancelled goals are excluded. Rows are compact summaries (id/title/status/targetDate/progressPct/lastCheckInAt/tags); pass detail 'full' or fetch one goal with goals_getGoal when the user needs check-ins, milestones, or the full why.
| Field | Type | Description |
|---|---|---|
| query | string | Free-text search over titles, whys, tags, and check-ins. |
| status | one of planned, active, paused, achieved, missed, cancelled | Filter by status. |
| priority | one of low, normal, high, urgent | Filter by priority. |
| horizon | one of weekly, monthly, quarterly, yearly, custom | Filter by horizon. |
| area | string | Filter by area. |
| tag | string | Filter by tag. |
| ownerPersonId | string | Only goals owned by this person ID. |
| linkedModuleId | string | Only goals linked to records of this module. |
| linkedEntityId | string | Only goals linked to this record ID (combine with linkedModuleId). |
| includeArchived | boolean | Include cancelled goals; default false. |
| detail | one of summary, full | Row shape: "summary" (default, id/title/status/targetDate/progressPct/lastCheckInAt/tags) or "full" (every field incl. check-ins, milestones, and habit log). |
| limit | integer | Max records to return (default 50 in summary mode). |
goals_createGoalCreatethrough vritto_createCreate a goal. Only goal.title is required; include horizon, priority, metricType, startValue/currentValue/targetValue, unit, and targetDate when known, e.g. { title: "Ship Vritto beta", horizon: "quarterly", metricType: "percent", targetValue: 100, currentValue: 30, priority: "high" }.
| Field | Type | Description |
|---|---|---|
| goal* | object | Goal fields; only title is required. |
| goal.title* | string | Goal title. |
| goal.why | string | Reason this goal matters. |
| goal.status | one of planned, active, paused, achieved, missed, cancelled | Goal status; defaults to "active". |
| goal.priority | one of low, normal, high, urgent | Priority; defaults to "normal". |
| goal.kind | one of objective, key_result, habit, target | Goal kind; defaults to "objective". |
| goal.horizon | one of weekly, monthly, quarterly, yearly, custom | Time horizon; defaults to "quarterly". |
| goal.area | string | Area or domain. |
| goal.startDate | string | Start date YYYY-MM-DD. |
| goal.targetDate | string | Target date YYYY-MM-DD. |
| goal.metricType | one of percent, number, currency, boolean | How progress is measured; defaults to "percent". |
| goal.startValue | number | Starting metric value; defaults to 0. |
| goal.currentValue | number | Current metric value; defaults to 0. |
| goal.targetValue | number | Target metric value; defaults to 100 (1 for boolean metrics). |
| goal.unit | string | Metric unit, e.g. "%", "kg", "$". |
| goal.progress | number | Progress percent; the server recomputes it from metric values when possible. |
| goal.progressMode | one of manual, linked | How progress is computed; defaults to "manual". Use "linked" to roll progress up from contributing linked records. |
| goal.habitCadence | one of daily, weekly | Cadence for kind "habit" goals; defaults to "daily". Habit progress is adherence over a trailing window. |
| goal.confidence | integer | Confidence from 0 to 100; defaults to 70. |
| goal.ownerPersonIds | list of string | Owner person IDs. |
| goal.tags | list of string | Tags. |
| goal.linkedRefs | list of object | Cross-module records linked to this goal. Prefer goals_linkGoalRef / goals_unlinkGoalRef for incremental link changes. |
| goal.milestones | list of object | Goal milestones. |
| goal.favorite | boolean | Mark the goal as a favorite. |
| goal.idempotencyKey | string | Stable dedupe key so a retried create does not duplicate the goal. |
Example input
{
"goal": {
"title": "Run a half marathon",
"kind": "target",
"horizon": "quarterly",
"targetDate": "2026-12-06",
"metricType": "number",
"startValue": 0,
"targetValue": 21.1,
"unit": "km"
}
}goals_addGoalCheckInUpdatethrough vritto_updateAdd a progress check-in to one goal; the goal's currentValue and confidence are updated from it, e.g. { goalId, checkIn: { summary: "Finished onboarding flow.", progressValue: 45, confidence: 75 } }. Preferred way to record progress.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| checkIn* | object | Goal check-in fields. |
| checkIn.date | string | Check-in date YYYY-MM-DD; defaults to today. |
| checkIn.summary | string | Progress summary: what happened since the last check-in. |
| checkIn.confidence | integer | Confidence from 0 to 100; defaults to 70. |
| checkIn.progressValue | number | Current metric value after this check-in; becomes the goal's currentValue (defaults to 0, so always pass the real value). |
| checkIn.nextStep | string | Next concrete step. |
| checkIn.blockers | list of string | Blockers. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Example input
{
"goalId": "goal_half",
"checkIn": {
"date": "2026-09-26",
"summary": "Long run felt strong",
"progressValue": 14,
"confidence": 75
}
}goals_linkGoalRefUpdatethrough vritto_updateAttach or update one cross-module link on a goal (deduped by moduleId + entityId), e.g. link a goal to a project: { goalId, ref: { moduleId: "projects", entityId: "...", relation: "supports" } }. Set contributesToProgress true (with progressMode "linked" on the goal) to let the record drive goal progress.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| ref* | object | The link to attach or update. |
| ref.moduleId* | string | Module ID of the linked record. |
| ref.entityId* | string | Linked record ID. |
| ref.label | string | Human-readable label. |
| ref.route | string | In-app route. |
| ref.relation | one of supports, tracks, blocks, reference | How the record relates to the goal; defaults to "supports". |
| ref.weight | number | Relative weight in linked-progress roll-up; defaults to 1. |
| ref.progress | number | This link's own progress percent; defaults to 0. |
| ref.contributesToProgress | boolean | Whether this link feeds the goal's progress in linked mode; defaults to false. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
goals_patchGoalUpdatethrough vritto_updateUpdate selected fields of one goal, e.g. { goalId, patch: { currentValue: 55, confidence: 80 } }. Only include the fields being changed; progress is recomputed server-side.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| patch* | object | Goal fields to change; omitted fields are kept. |
| patch.title | string | Goal title. |
| patch.why | string | Reason this goal matters. |
| patch.status | one of planned, active, paused, achieved, missed, cancelled | Goal status; defaults to "active". |
| patch.priority | one of low, normal, high, urgent | Priority; defaults to "normal". |
| patch.kind | one of objective, key_result, habit, target | Goal kind; defaults to "objective". |
| patch.horizon | one of weekly, monthly, quarterly, yearly, custom | Time horizon; defaults to "quarterly". |
| patch.area | string | Area or domain. |
| patch.startDate | string | Start date YYYY-MM-DD. |
| patch.targetDate | string | Target date YYYY-MM-DD. |
| patch.metricType | one of percent, number, currency, boolean | How progress is measured; defaults to "percent". |
| patch.startValue | number | Starting metric value; defaults to 0. |
| patch.currentValue | number | Current metric value; defaults to 0. |
| patch.targetValue | number | Target metric value; defaults to 100 (1 for boolean metrics). |
| patch.unit | string | Metric unit, e.g. "%", "kg", "$". |
| patch.progress | number | Progress percent; the server recomputes it from metric values when possible. |
| patch.progressMode | one of manual, linked | How progress is computed; defaults to "manual". Use "linked" to roll progress up from contributing linked records. |
| patch.habitCadence | one of daily, weekly | Cadence for kind "habit" goals; defaults to "daily". Habit progress is adherence over a trailing window. |
| patch.confidence | integer | Confidence from 0 to 100; defaults to 70. |
| patch.ownerPersonIds | list of string | Owner person IDs. |
| patch.tags | list of string | Tags. |
| patch.linkedRefs | list of object | Cross-module records linked to this goal. Prefer goals_linkGoalRef / goals_unlinkGoalRef for incremental link changes. |
| patch.milestones | list of object | Goal milestones. |
| patch.favorite | boolean | Mark the goal as a favorite. |
| patch.idempotencyKey | string | Stable dedupe key so a retried create does not duplicate the goal. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Example input
{
"goalId": "goal_half",
"patch": {
"currentValue": 12,
"confidence": 70
}
}goals_setGoalStatusUpdatethrough vritto_updateSet one goal's status, e.g. mark it "achieved", "paused", or back to "active". Use deleteGoal instead when the user wants the goal removed.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| status* | one of planned, active, paused, achieved, missed, cancelled | New goal status. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Example input
{
"goalId": "goal_half",
"status": "achieved"
}goals_toggleGoalHabitDayUpdatethrough vritto_updateToggle a habit goal's completion for one day (defaults to today); calling again for the same date undoes it. Use for "I did my habit today" / "mark my run done for yesterday". Habit adherence and progress are recomputed automatically.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| date | string | Habit completion date YYYY-MM-DD; defaults to today. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
goals_unlinkGoalRefUpdatethrough vritto_updateRemove one cross-module link from a goal, identified by moduleId + entityId.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| moduleId* | string | Module ID of the link to remove. |
| entityId* | string | Entity ID of the link to remove. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
goals_deleteGoalDeletethrough vritto_deleteDelete one goal by ID (marks it cancelled). Use only for explicit deletion requests.
| Field | Type | Description |
|---|---|---|
| goalId* | string | Goal ID. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Kept in the Vritto app
goals_updateGoal: Replaces a whole record and clears omitted fields; the merge operation is on MCP instead.