Skip to content

Roo should automatically create TODO lists for complex tasks without manual interventionΒ #5470

@hannesrudolph

Description

@hannesrudolph

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.ts that 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:

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

No one assigned

    Labels

    Issue/PR - TriageNew issue. Needs quick review to confirm validity and assign labels.enhancementNew feature or requestproposal

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions