assistant-skills/vikunja-tasks/SKILL.md
Connor Rhodes 3f3ddc7f42 Add vikunja-tasks skill for vik CLI task management
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 19:59:02 -05:00

117 lines
3.7 KiB
Markdown

---
name: vikunja-tasks
description: Manage tasks in Connor's Vikunja instance using the vik CLI tool. Use this skill whenever Connor wants to create, view, update, complete, or delete tasks — including phrasing like "add a task," "what's on my plate," "mark that done," "remove that task," "show me what's due," or any request involving task tracking, to-do items, or his personal task list.
---
# Vikunja Task Management
Connor manages tasks via a self-hosted Vikunja instance at tasks.connorrhodes.com, accessed through the `vik` CLI tool. Always use `vik` for task operations — never navigate to the web UI or use the API directly.
## Quick Reference
| Goal | Command |
|------|---------|
| See today's tasks | `vik task today` |
| See upcoming tasks | `vik task upcoming [--days N]` |
| See all tasks | `vik task list` |
| Find a task | `vik task get <ID or partial title>` |
| Search tasks | `vik task search <query>` |
| Create a task | `vik task create "Title" [options]` |
| Update a task | `vik task update <ID> [options]` |
| Mark done | `vik task update <ID> --done` |
| Delete a task | `vik task delete <ID>` |
---
## Creating Tasks
```bash
vik task create "Task title"
```
**Options:**
- `--project ID` — project to add to (default: 1)
- `--label LABEL` — assign a label (creates it if it doesn't exist)
- `--desc TEXT` — task description (overrides clipboard)
- `--no-clip` — skip auto-populating description from clipboard URL
**Date syntax in the title** (parsed automatically, removed from final title):
- `s+N` — start date N days from now
- `d+N` — due date N days from now
Examples:
```bash
vik task create "Review draft proposal"
vik task create "Follow up with vendor d+3"
vik task create "Prep for demo s+1 d+4" --label work
vik task create "Read article" --no-clip
```
> Note: if there's a URL in the clipboard, `vik` will automatically embed it as a markdown link in the description unless `--no-clip` is passed.
---
## Reading Tasks
```bash
vik task today # tasks with start or due date today
vik task today --due-only # only tasks due today (ignores start date)
vik task upcoming # next 7 days
vik task upcoming --days 14 # next 14 days
vik task upcoming --due-only
vik task list # all tasks
vik task get 42 # fetch task by ID
vik task get "vendor" # search by title substring (returns matches)
vik task search "follow up" # full-text search across all fields
```
When Connor asks "what do I have today" or "what's coming up," run `vik task today` or `vik task upcoming` and present the output.
---
## Updating Tasks
```bash
vik task update <ID> --title "New title"
vik task update <ID> --desc "Updated description"
vik task update <ID> --done
vik task update <ID> --undone
```
At least one field is required. `--done` and `--undone` are mutually exclusive.
If Connor says something like "mark that done" or "complete task 7," use `vik task update <ID> --done`.
---
## Deleting Tasks
```bash
vik task delete <ID>
```
No confirmation prompt — deletion is immediate. Confirm with Connor before deleting unless he was explicit about it.
---
## Labels
```bash
vik label list
vik label create "urgent" --color ff0000
```
Labels are created automatically when referenced in `vik task create --label`, so you rarely need to create them manually.
---
## Workflow Tips
- If Connor gives a title but no ID, use `vik task get "title"` to find the task first, then act on the result.
- Task IDs are integers shown in list/today/upcoming output.
- When creating a task with a URL context (e.g., "add this link as a task"), let clipboard auto-populate work — don't use `--no-clip`.
- For tasks with relative deadlines ("due Friday," "starts tomorrow"), convert to `d+N` / `s+N` before passing to the CLI.