-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
What specific problem does this solve?
Who is affected: All users working on complex, multi-step tasks
When this happens: Every time a user gives Roo a task that involves multiple steps or complex operations
Current behavior: Users must manually request "please create a todo list" even when the task clearly requires step-by-step tracking
Expected behavior: Roo should automatically detect task complexity and create TODO lists without user intervention
Impact: Time wasted on repetitive requests, interrupted workflow, and potential for users to forget important steps when TODO lists aren't created
Currently, even though Roo has clear guidelines in its prompt about when to use TODO lists:
- "The task involves multiple steps or requires ongoing tracking"
- "The task is complex and benefits from clear, stepwise progress tracking"
- "New actionable items are discovered during task execution"
These guidelines are not being followed automatically. Users must explicitly ask for TODO lists every time, which defeats the purpose of having an intelligent assistant that can assess task complexity.
Additional context
The update_todo_list tool already exists with clear usage guidelines, and there's even an alwaysAllowUpdateTodoList setting for auto-approval. The issue is that the AI doesn't proactively use this tool based on its own guidelines.
π οΈ Contributing & Technical Analysis
β
I'm interested in implementing this feature
β
I understand this needs approval before implementation begins
How should this be solved?
Based on my analysis of the codebase, I propose implementing automatic TODO list detection through a task complexity analyzer that triggers before the main task loop begins.
What will change:
- Add a task complexity detection system in
Task.tsthat analyzes the initial user request - Implement automatic TODO list creation when complexity thresholds are met
- Add configuration options for users to customize or disable automatic TODO lists
- Ensure the AI follows its own guidelines from
update-todo-list.ts
User interaction:
- Users submit tasks as normal without needing to request TODO lists
- Roo automatically creates a TODO list for complex tasks at the start
- Users see the TODO list appear immediately after task submission
- Users can still manually request TODO lists for simple tasks if desired
Acceptance Criteria
Given a user submits a complex task (e.g., "Create a full-stack web application with authentication")
When Roo analyzes the task
Then Roo automatically creates a TODO list without user intervention
And the TODO list appears in the chat before starting work
And the user can see task progress being tracked
Given a user submits a simple task (e.g., "Fix the typo in README.md")
When Roo analyzes the task
Then Roo does NOT create a TODO list
And proceeds directly with the task execution
Given a user has disabled automatic TODO lists in settings
When they submit any task
Then Roo never automatically creates TODO lists
But users can still manually request them
Technical Considerations
Implementation approach:
- Key files to modify:
src/core/task/Task.ts- Add complexity detection instartTask()methodsrc/core/prompts/system.ts- Enhance prompt to emphasize automatic TODO usagesrc/core/assistant-message/presentAssistantMessage.ts- Already handlesupdate_todo_list
- Current architecture: TODO lists are already fully implemented via
updateTodoListTool - Integration points: Hook into task initialization before the main loop
- Similar patterns in codebase: Tool usage detection in
presentAssistantMessage
Performance implications:
- Minimal overhead - complexity analysis happens once at task start
- No impact on existing TODO list functionality
Compatibility concerns:
- Fully backward compatible - existing manual TODO requests still work
- New setting to disable automatic TODO lists for users who prefer manual control
Trade-offs and Risks
Alternatives considered:
- Prompt engineering only: Tried emphasizing TODO usage in prompts, but AI still doesn't follow guidelines consistently
- Mode-specific TODO lists: Would limit functionality to certain modes rather than being universally helpful
Potential risks:
- Over-creation of TODO lists: Mitigated by clear complexity thresholds and user settings
- User confusion: Mitigated by clear messaging when automatic TODO lists are created
Breaking changes:
None - this is purely additive functionality with opt-out capability
Metadata
Metadata
Assignees
Labels
Type
Projects
Status