agents/skills/tdo/SKILL.md
Use when the user wants to add, list, complete, edit, or refine todos — manages them via the tdo CLI.
npx skillsauth add timofreiberg/dotfiles tdoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Parse $ARGUMENTS and dispatch:
| Argument pattern | Action |
|---|---|
| (empty) | Run tdo list. If there are any, ask the user what they want to do next. If none, say so. |
| add <title> [--body TEXT] | Create a new todo (optionally with body) |
| list | Run tdo list (open only — the default). Use tdo list --all only when the user asks about done todos. Note: listing triggers GC — done todos >7 days old are auto-deleted, stale assignments warn on stderr. |
| count | Run tdo count (open only) or tdo count --all (include done). Prints the count as a plain number. |
| show <query> | View a todo's full details |
| done <query> | Mark a todo as done |
| reopen <query> | Reopen a done todo |
| edit <query> | Edit a todo's body |
| delete <query> | Delete a todo |
| assign <query> [name] | Assign a todo (optionally to a person) |
| unassign <query> | Remove assignment from a todo |
| refine <query> | Research and refine a todo through discussion |
| Free-form task-shaped statement without a known verb | Treat as add <text> |
| Free-form question ("do I have anything about X?") | Treat as list/show, not add |
Run tdo add <title words> or tdo add <title words> --body "body text". It prints the assigned 4-char hex ID to stdout. Confirm creation to the user.
Use --body to set body text in the same command when the user provides details beyond the title. Newlines in the body are supported literally.
Titles are immutable after creation. To change a title, delete and recreate.
Match the query to an ID (see "Matching queries to IDs"), then run tdo show <id>. It prints the todo's ID, title, status, timestamps, assignment, and body to stdout.
If the query is a hex ID or prefix (e.g. a3f9, a3), use it directly. Otherwise, run tdo list --all, match by title substring, and disambiguate with AskUserQuestion if needed.
Match the query to an ID (see above), then run:
tdo assign <id> (assign without a name)tdo assign <id> <name> (assign to a specific person)tdo unassign <id>Confirm the result to the user.
Match the query to an ID (see above), then run the command:
tdo done <id>tdo reopen <id>tdo edit <id> --body "new body content" (--body required for non-interactive use)tdo delete <id> --force (--force required for non-interactive use)Confirm the result to the user.
tdo show <id> to read the todo's full contenttdo edit <id> --body "..."databases
Use when a judgment forms during work that a future session would benefit from — a fork you resolved, a correction from the user, a wrong assumption about the environment, something you had to rediscover. Appends one timestamped entry to the journal staging dir.
development
Use when starting your work day: groom the todo list to a trusted state, archive finished work, surface today's candidates, and propose a concrete first move. Stab-then-confirm, ~5 min.
data-ai
Use when reviewing local changes — the working-copy diff, a branch, a commit, or a GitHub PR by number — with a fresh subagent that returns a structured findings report.
tools
Use when a question needs current internet information — docs, news, releases, prices. Prefer a built-in web search tool for quick lookups if the harness has one; this script returns a model-summarized answer with source URLs and works without one.