managing-todos

Installation
SKILL.md

Managing Todos

Lightweight todo tracking using markdown files. Todos capture things noticed during a session to tackle later.

Directory & Customization

Default directory: docs/todos/, archived todos go to docs/todos/done/.

Projects can override defaults in their CLAUDE.md:

## Todos
- directory: .todos/
- statuses: open, in-progress, blocked, done, wont-fix

The todo.sh script in this skill directory reads ## Todos from CLAUDE.md automatically.

The Script

Always use ~/.claude/skills/managing-todos/todo.sh for all operations. It validates statuses, priorities, sets the correct created date, and respects CLAUDE.md overrides.

# Create
todo.sh create -t "Fix hardcoded URL" -p high --tags "refactor,config" -d "Move API URL to env var"

# Multiline description
todo.sh create -t "Fix auth flow" -p high -d $'First line.\nSecond line.\nThird line.'

# List / Filter
todo.sh list                          # all active todos
todo.sh list -s open -p high          # open + high priority
todo.sh list --tag frontend           # by tag

# Update
todo.sh update "hardcoded-url" -s in-progress
todo.sh update "hardcoded-url" -p low --tags "config,cleanup"

# Archive (sets status=done + moves to done/ subfolder)
todo.sh archive "hardcoded-url"

Run todo.sh with no args for full usage.

File matching is partial — "hardcoded-url" matches 2026-03-25-fix-hardcoded-url.md.

File Format

Filename: YYYY-MM-DD-short-description.md (auto-generated by script)

Frontmatter:

  • statusopen, in-progress, done (or project-custom)
  • prioritylow, medium, high
  • created — ISO date (auto-set by script)
  • tags — YAML list

List Output Format

## Open Todos (2)

**[high] Add error boundaries** (2026-03-15) — frontend, error-handling
  No error boundaries in place. A crash takes down the whole page.

**[medium] Update deprecated deps** (2026-03-18) — dependencies
  Replace node-sass, request, moment with modern alternatives.

Auto-Detection

When you notice something during a session that is unrelated to the current task and worth capturing:

You MUST ask the user before creating a todo. Example:

I noticed [issue]. Want me to create a todo for this?

Never silently create todos. The user may already be aware, may disagree on priority, or may not want it tracked.

Only skip confirmation when the user explicitly says something like "todo: fix X later" or "add a todo for Y" — that's direct instruction, not auto-detection.

Common Mistakes

  • Creating todos without the script (bypasses validation)
  • Creating todos without asking when auto-detecting
  • Archiving by deleting instead of using todo.sh archive
Related skills
Installs
1
First Seen
Mar 25, 2026