Skip to content

Task Tools


create_task

Create a new global task type (work-category label used across projects, e.g. Design, Development, Admin). Owner only.

Writes to: 05. Tasks

Parameters: requesting_user_slack_id, task_name, is_billable (optional, default false)

VERA checks for a case-insensitive duplicate before creating. After creation, VERA will offer to enable the task on a named project if one was mentioned.

Returns: task_id, task_name, is_billable


rename_task

Rename a task globally. The new name appears on all historical time entries immediately. Owner only.

Writes to: 05. Tasks

Parameters: requesting_user_slack_id, old_name, new_name

Returns: task_id, old_name, new_name, entries_affected


update_task

Update a task's is_billable flag. Owner only. VERA shows a before/after confirmation before calling this tool.

Writes to: 05. Tasks

Parameters: requesting_user_slack_id, task_id, is_billable

Archived tasks are rejected as write targets — unarchive first if needed.

Returns: task_id, task_name, is_billable


archive_task

Archive a task so it no longer appears in menus or as a write target. Historical time entries referencing it are preserved. Owner only.

Writes to: 05. Tasks

Parameters: requesting_user_slack_id, task_name

Hard fails if the task is currently enabled on any active project — disable it on those projects first. Use unarchive_task to restore.


unarchive_task

Restore an archived task to active status. Owner only.

Writes to: 05. Tasks

Parameters: requesting_user_slack_id, task_name


list_tasks

List all task types. Active tasks only by default.

Reads from: 05. Tasks

Parameters: requesting_user_slack_id, include_archived (optional bool)

Returns: array of { id, name, is_billable, status } for each task


enable_task_for_project

Enable a task for a specific project, making it available when logging time to that project. Owner or assigned PM (PM-of-project gated — a Manager who is not the PM is denied).

Writes to: 06. Project_Tasks

Parameters: requesting_user_slack_id, project_name, task_name, budget_hours (optional), alert_threshold (optional, default 80)

Permission note (updated #1090): Now deterministic (DET). Wired in the extractor (object_nouns: ['task']), resolver (PM-of-project pmOrOwnerGate), and a server-side instant-fire gate in index.js. Non-PM manager denial is deterministic (no model turn). Missing slots fall through to the model.

Natural phrasings: "enable the Design task on CityCore", "turn on the Design task on CityCore".


disable_task_for_project

Disable a task for a specific project. Owner or assigned PM (PM-of-project gated — a Manager who is not the PM is denied).

Writes to: 06. Project_Tasks

Parameters: requesting_user_slack_id, project_name, task_name

Permission note (updated #1090): Now deterministic (DET) with a confirm gate. Wired in the extractor (object_nouns: ['task']), resolver (pmOrOwnerGate), and a confirm→fire gate in index.js. "remove the design task from X" routes here — no longer hijacked by delete_entry. Non-PM manager denial is deterministic.

Natural phrasings: "disable the Design task on CityCore", "remove the design task from CityCore", "turn off the Design task on CityCore".