Run a named TaskMate automation playbook against the Vikunja board: groom (backlog hygiene), split (break oversized tasks into subtasks), review (weekly retro with celebration), celebrate (kudos on completed work), unstick (research the most stuck task), triage (route inbox tasks). Dry-run by default; --apply executes mutations. Custom playbooks in .claude/taskmate/playbooks/ or ~/.config/taskmate/playbooks/ override built-ins. Use for scheduled automation (claude -p "/taskmate:auto groom --apply") or when the user asks to groom, clean up, triage, split, or review their task board.
68
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Execute one named automation playbook. Playbooks are markdown instruction files; you are the
interpreter. CLI: uv run "${CLAUDE_PLUGIN_ROOT}/skills/taskmate/scripts/taskmate.py" ...
(below: taskmate.py).
Given <name>, use the first file found:
.claude/taskmate/playbooks/<name>.md - project-local custom playbook~/.config/taskmate/playbooks/<name>.md - user custom playbook${CLAUDE_PLUGIN_ROOT}/skills/auto/playbooks/<name>.md - built-inCalled with no argument: list all playbooks from all three locations (name + purpose
line, note overrides), and stop.
Called with an unknown name: show the list and suggest the closest match; offer to draft
a custom playbook from the user's description - write it to
.claude/taskmate/playbooks/<name>.md in the built-in format so it becomes schedulable.
--apply, output the decision list - each proposed
mutation as task-id: current → proposed (reason) - and stop. With --apply, execute
each mutation, verify via the command's echoed output, and report what actually changed.taskmate.py journal recent --days 60 --source <playbook>: skip proposals a human
previously declined, and honor playbook-specific skip rules. With --apply, record each
verified mutation - taskmate.py journal add <playbook> applied --task <id> --note "<what>".
When a human rejects a proposal interactively, record it as declined the same way so
future runs stop re-proposing it.NO_ACTION (plus nothing else when running scheduled /
non-interactively). An empty grooming run is a healthy board, not a failure./taskmate:setup. Scheduled: print
TASKMATE_NOT_CONFIGURED and stop..claude/taskmate.local.md): scope to its project_id unless the
playbook or user says otherwise.max-mutations line in the playbook may lower it, never
raise it). If the decision list is longer, apply the most valuable within the cap and
report the remainder as proposals.${CLAUDE_PLUGIN_ROOT}/skills/taskmate/references/etiquette.md.| Name | Purpose | Sane schedule |
|---|---|---|
groom | Backlog hygiene: overdue, stale, missing metadata | weekly |
split | Break oversized/vague tasks into subtasks | on demand |
review | Weekly retro: shipped, slipped, next focus | Friday |
celebrate | Kudos comments on completed work (companion mode) | Friday |
unstick | Research the single most stuck task, add one high-value comment | weekly |
triage | Route inbox tasks to projects with sensible metadata | weekly |
# <Title>
purpose: <one line - shown in the playbook list>
mode: read-only | mutate
max-mutations: <optional, lower than 15>
## Gather
Which queries to run (taskmate.py commands).
## Decide
Rules that turn findings into a decision list. Be specific about thresholds.
## Act
What --apply may change, and what stays a proposal for humans.
## Output
What to report; when to print NO_ACTION.titusz/skills
b24417b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.