You are managing development todos using a file-based todo system.
Todo System Overview
Todos are markdown files with the prefix todo- that track work to be done. They can live anywhere in the codebase, placed near the code they relate to. Completed todos are moved to .completedtodos/.
File Format
# Human-Readable Title
parent: todo-parent-slug
## Description
What needs to be done and why. Can include natural language about:
- Ordering constraints ("profile before optimizing", "implement basic version before adding caching")
- Blockers ("waiting on API v2 migration", "blocked by dependency upgrade")
- Dependencies on other todos
- Context and rationale
## Subtasks
- [x] Completed inline subtask
- [ ] todo-child-slug
- [ ] Another inline subtask
Notes:
- •The slug comes from the filename (e.g.,
todo-fix-renderer-perf.mdhas slugtodo-fix-renderer-perf) - •No status field - if the file exists outside
.completedtodos/, it's active - •
parent:is optional, only used when this todo is a subtask of another - •Subtasks can be inline text or references to other todo files
Creating a Todo
- •
Choose a slug: Descriptive, kebab-case, starts with
todo-- •Good:
todo-add-user-authentication,todo-optimize-database-queries,todo-implement-caching-layer - •Bad:
todo-stuff,todo-fix-it,todo-things
- •Good:
- •
Check for uniqueness: Before creating, verify no existing todo has this slug
bashfind . -name "todo-*.md" | grep -i "your-slug"
If a similar todo exists, alert the user - they may want to reuse or extend it.
- •
Choose location: Place the todo near the code it affects
- •
src/auth/todo-add-oauth-support.mdfor authentication work - •
backend/api/todo-implement-rate-limiting.mdfor API work - •
frontend/components/todo-redesign-navbar.mdfor UI work - •Root level for cross-cutting concerns
If unsure about location, ask the user.
- •
- •
Create the file with the format above
Expanding a Todo
When asked to expand or flesh out a rough todo:
- •Read the existing todo
- •Analyze the relevant codebase to understand scope
- •Break down the description into concrete subtasks
- •Add ordering/dependency notes in natural language
- •Create child todo files for large subtasks that need their own breakdown
- •Commit the changes
Completing a Todo
When a todo is done:
- •Move the file to
.completedtodos/bashmv path/to/todo-foo.md .completedtodos/
- •Commit the move
Do NOT edit the todo file when completing - just move it.
Listing Todos
Find all active todos:
find . -name "todo-*.md" -not -path "./.completedtodos/*"
Find completed todos:
ls .completedtodos/
Subtask Patterns
Inline subtasks - for small, self-contained items:
- [ ] Write unit tests for the new feature - [ ] Update API documentation - [ ] Add error handling for edge cases
Todo references - when a subtask is big enough to warrant its own file:
- [ ] todo-implement-user-sessions - [ ] todo-add-email-notifications
When to create a separate todo file:
- •Subtask needs its own description paragraph
- •Subtask has sub-subtasks
- •Subtask might be worked on independently
- •Subtask is complex enough to benefit from its own revision history
When creating a child todo:
- •Create the new todo file with
parent: todo-parent-slug - •Add
todo-child-slugas a subtask line in the parent - •Commit both changes together
Researching a Todo
When asked to research a todo:
- •Read the todo to understand what it's asking for
- •Research relevant source code - explore the codebase to understand:
- •Current implementation
- •Related systems and dependencies
- •Patterns used elsewhere that might apply
- •Potential approaches and tradeoffs
- •Ask clarifying questions - use the built-in multiple choice feature (AskUserQuestion) to present the user with questions whose answers would help create a detailed plan:
- •Implementation approach preferences
- •Scope decisions (minimal vs comprehensive)
- •Performance vs simplicity tradeoffs
- •Integration points with existing code
- •Testing strategy preferences
- •Augment the todo with a detailed plan based on the research and user answers:
- •Add concrete subtasks
- •Note specific files/functions to modify
- •Include relevant code references
- •Document any decisions made