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
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
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.575d5a3
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.