| name | working-off-of-todo-files |
| description | Use when the user asks you to interact, work, read, create or update tasks in ai-notes/**/*/todo.{md,txt} files, or when user asks you to look at the "todo file". |
Overview
This skill enables Claude Code to work systematically with
ai-notes/**/*/todo.{md,txt} files in your codebase. The agent focuses on
completing one task at a time with precision, breaking complex tasks into
subtasks mentally before execution.
Core Principles
- Single Task Focus: Work on ONE task at a time until completion or user intervention
- Mental Decomposition: Break tasks into subtasks in memory before starting
- Progressive Status: Use clear markers for task progress
- User Control: Only advance to next task when explicitly instructed
- Context Awareness: Understand the broader project while maintaining task focus
Task Format Specification
Basic Structure
## Context
Brief overview of the project goals and current state
## Tasks
- [ ] Task 1: Clear task description
Additional context or requirements indented by 4 spaces
Can include multiple lines of detail
- [ ] Task 2: Another task
Context and requirements
- [/] Task 3: Currently in progress
This task is being worked on
Progress notes can be added here
- [x] Task 4: Completed task
This task has been finished
Completion notes or results
Task States
- [ ]Pending: Task not yet started- [/]In Progress: Currently working on this task- [x]Completed: Task finished successfully
Working Protocol
1. Initial Assessment
When starting work on a todo.md file:
1. Read the entire file to understand project context
2. Identify the next uncompleted task (first `- [ ]`, unless instructed otherwise)
3. Mentally decompose the task into subtasks
4. Announce which task you'll be working on
2. Task Execution Process
Before Starting
- Identify the task clearly: "I'll work on: [Task description]"
- Generate mental subtasks (do not write these to file):
- Analyze requirements
- Identify dependencies
- Plan implementation steps
- Define success criteria
- Mark task as in-progress: change
- [ ]to- [/]
During Execution
- Work through mental subtasks systematically
- Add progress notes under the task (indented)
- If encountering blockers, document them
- Keep changes focused on the current task only
After Completion
- Verify all requirements are met
- Run relevant tests/specs
- Mark task complete: change
- [/]to- [x] - Add completion notes if valuable
- Stop and wait for user confirmation to continue
3. Communication Protocol
Always communicate:
- Which task you're starting
- Key decisions or assumptions
- Any blockers encountered
- When task is complete
- Request for permission to change plan if needed. Explain why and trade-offs.
- Request for permission to continue
Example interaction:
Agent: "I've identified Task 2: 'Implement user authentication'. I'll start by setting up the authentication middleware. Marking as in progress."
[Works on task]
Agent: "Task 2 is complete. The authentication system is now functional with JWT tokens. Should I proceed to Task 3 for adding a password reset functionality?"
User: "Yes, continue"
Agent: "Starting Task 3: 'Add password reset functionality'..."
Mental Subtask Generation
For each task, generate (but don't write) subtasks like:
Example: "Implement API endpoint"
Mental subtasks:
- Define route structure
- Write e2e tests (if applicable) to settle the expectations
- Create controller function
- Add input validation
- Implement business logic
- Add error handling
- Write tests
- Consider simplifications, optimizations, and readability.
- Update documentation
Example: "Fix bug in payment processing"
Mental subtasks:
- Reproduce the bug
- Write a test that fails due to the bug
- Identify root cause
- Review related code
- Implement fix
- Test edge cases
- Run test that reproduced the bug
- Verify no regression with existing tests
- Document the fix
File Discovery and Management
Locating Todo Files
# Find all todo.md files in ai-notes directories
find . -path "*/ai-notes/*" -name "todo.md" -type f
# List with context
find . -path "*/ai-notes/*" -name "todo.md" -exec echo "Found: {}" \; -exec head -n 5 {} \;
Safe File Operations
- Always backup before major changes
- Use atomic operations when possible
- Preserve file formatting and structure
- Maintain consistent indentation (4 spaces for task details)
Task Dependencies and Context
Understanding Dependencies
Before starting a task, check for:
- References to other tasks
- Required prerequisites
- Related code files mentioned
- External dependencies
Maintaining Context
- Keep track of completed tasks for reference
- Note patterns or decisions from previous tasks
- Build on work from completed tasks
- Document assumptions for future tasks
Error Handling
Common Scenarios
Ambiguous task description
- Ask for clarification
- Document interpretation
Blocked by external dependency
- Document the blocker
- Suggest alternatives or workarounds
- Move to next task only if instructed
Task too large
- Suggest breaking into multiple tasks
- Complete what's reasonable
- Document remaining work
Best Practices
Do's
- ✅ Focus completely on one task
- ✅ Think through subtasks before starting
- ✅ Update status markers promptly
- ✅ Add helpful progress notes
- ✅ Verify completion thoroughly
- ✅ Wait for user permission between tasks
- ✅ Maintain clean, readable formatting
Don'ts
- ❌ Jump between multiple tasks
- ❌ Skip marking progress states
- ❌ Add visible subtasks to the file (keep them mental)
- ❌ Continue to next task without permission
- ❌ Modify completed tasks unnecessarily
- ❌ Lose track of the big picture
Advanced Features
Task Annotations
You may encounter special annotations:
- [ ] Task with priority !high
- [ ] Task with deadline @2024-12-31
- [ ] Task with assignee @alex
- [ ] Task with tag #backend
Respect these but don't require them.
- If you see !high, prioritize if user allows
Progress Tracking
When requested, provide summary:
Total Tasks: X
Completed: Y (Z%)
In Progress: 1
Remaining: W
Current Focus: [Task description]
Integration Notes
- Compatible with version control (git-friendly)
- Works alongside issue tracking systems
- Can reference external tickets or PRs
- Supports cross-referencing between projects
Example Session
# Initial State
- [ ] Set up database schema
- [ ] Create API endpoints
- [ ] Add authentication
# After starting Task 1
- [/] Set up database schema
Creating tables for users, sessions, and permissions
Using PostgreSQL with migrations
# After completing Task 1
- [x] Set up database schema
Completed: 5 tables created, migrations ready
- [ ] Create API endpoints
- [ ] Add authentication
# User says "continue"
- [x] Set up database schema
Completed: 5 tables created, migrations ready
- [/] Create API endpoints
Working on RESTful endpoints for user management
- [ ] Add authentication
Troubleshooting
Issue: Task unclear
Solution: Ask for clarification, document assumptions
Issue: Multiple todo.md files
Solution: Ask which project to focus on or work through them systematically
Issue: Conflicting priorities
Solution: Follow file order unless user specifies otherwise
Issue: Task partially complete from before
Solution: Assess current state, complete remaining work
Remember
- Quality over speed
- One task, done well, is better than multiple tasks done poorly
- The user is in control of pacing
- Document your work for future reference
- Think in subtasks, but execute as one cohesive task