Taskwarrior (Workspace-Local Tasks) — AgentSkill
Skill name
taskwarrior
Purpose
Manage tasks using Taskwarrior as the backend with data stored inside the current workspace. This skill provides a safe, workspace-scoped wrapper for common Taskwarrior operations (add/list/modify/done/projects/tags/due/priority/annotations).
Runtime requirements (ClawHub)
This skill requires Taskwarrior to already be available in the runtime environment (e.g., included in the base image).
- Validation: run
task --version - If missing: report the dependency and instruct the environment owner to install system package taskwarrior (some distros package it as task).
This skill does not perform system-level installs (no apt, brew, dnf, etc.).
Workspace root resolution (portable)
The skill resolves the workspace root at runtime:
- If set, use the first available of:
- OPENCLAW_WORKSPACE
- WORKSPACE
- PROJECT_DIR
- REPO_ROOT
- Otherwise, fallback to the current working directory.
All Taskwarrior data is stored under:
<workspace>/.openclaw/taskwarrior/
Workspace-local Taskwarrior home
- taskrc:
<workspace>/.openclaw/taskwarrior/taskrc - data dir:
<workspace>/.openclaw/taskwarrior/.task/
Every Taskwarrior command MUST run with:
TASKRC=<workspace>/.openclaw/taskwarrior/taskrc- (optional)
TASKDATA=<workspace>/.openclaw/taskwarrior/.task
Never write to global ~/.task or ~/.taskrc unless the user explicitly asks to use global storage.
Core workflow
-
Check dependency
- Run:
task --version - If missing: stop and return dependency instructions (see references/clawhub_notes.md).
- Run:
-
Initialize workspace storage
- Ensure directories exist:
<workspace>/.openclaw/taskwarrior/<workspace>/.openclaw/taskwarrior/.task/
- Ensure
<workspace>/.openclaw/taskwarrior/taskrccontains at least:data.location=<workspace>/.openclaw/taskwarrior/.taskconfirmation=offverbose=off
- Ensure directories exist:
-
Execute requested operations
- Prefer stable/common commands (see references/taskwarrior_cheatsheet.md).
-
Verify results
- After any mutation, show a focused
task <id> infoor filteredtask <filter> list.
- After any mutation, show a focused
Supported operations (useful subset)
- Add tasks:
task add ... - List tasks:
task list,task <filter> list - Modify tasks:
task <id> modify ... - Complete tasks:
task <id> done - Start/stop:
task <id> start|stop(if desired) - Projects/tags:
task projects,task tags,project:<name>,+tag,-tag - Due/priorities:
due:<date>,priority:H|M|L - Notes:
task <id> annotate "..."
Safety
Follow references/safe_command_policy.md.
Highlights:
- No delete/purge unless explicitly requested.
- Avoid broad bulk changes without previewing the matching set.
- No global config writes by default.
References
- references/workspace_data_layout.md
- references/taskwarrior_cheatsheet.md
- references/safe_command_policy.md
- references/examples.md
- references/clawhub_notes.md