This skill should be used when working with built-in TaskList tools (TaskCreate, TaskUpdate, TaskList, TaskGet) to track execution progress within and across Claude Code sessions.
TaskList is a built-in Claude Code feature for tracking task execution. Tasks are stored in ~/.claude/tasks/[session-uuid]/ and can be shared across sessions using the import-tasks skill.
Use TaskList when:
Consider file-todos instead when:
Use both when:
| Tool | Purpose |
|---|
TaskCreate | Create a new task with subject, description, activeForm |
TaskUpdate | Update status, add dependencies, modify tasks |
TaskList | View all tasks with status and blockers |
TaskGet | Get full details of a specific task |
Required: subject (imperative form), description (detailed scope)
Recommended: activeForm (present continuous for spinner display)
Set via TaskUpdate: status (pending/in_progress/completed), addBlockedBy, addBlocks
Use imperative form (like git commits): "Implement user authentication", "Add validation for email field", "Write integration tests"
Use present continuous: Subject "Run database migrations" → ActiveForm "Running database migrations"
pending → in_progress → completed
TaskCreate: "Implement User model" → #1
TaskCreate: "Add authentication service" → #2
TaskUpdate: #2 addBlockedBy [#1]
Create tasks that are completable in a focused session (1-4 hours), specific enough to know when done, independent or with clear dependencies, and verifiable.
while TaskList shows pending tasks:
TaskList # Check available work
TaskUpdate: #X status=in_progress # Claim next unblocked task
# ... implementation ...
TaskUpdate: #X status=completed # Mark complete
---