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_taskto 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".