diff --git a/.gitignore b/.gitignore index e236846..888a310 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.release-notes/ # Dependencies /node_modules diff --git a/docs/basic-usage/task-todo-list.md b/docs/basic-usage/task-todo-list.md new file mode 100644 index 0000000..11ebf4e --- /dev/null +++ b/docs/basic-usage/task-todo-list.md @@ -0,0 +1,93 @@ +# Task Todo List + +**The big picture**: Never lose track of complex development tasks again. Task Todo Lists create interactive, persistent checklists that live right in your chat interface. + +**Why it matters**: Complex workflows have lots of moving parts. Without structure, it's easy to miss steps, duplicate work, or forget what comes next. + +Task Todo List overview showing interactive checklist in Kilo Code + +## How to trigger todo lists + +**Automatic triggers**: +- Complex tasks with multiple steps +- Working in Architect mode +- Multi-phase workflows with dependencies + +**Manual triggers**: +- Ask Kilo to "use the [update_todo_list tool](/features/tools/update-todo-list)" +- Say "create a todo list" + +**The bottom line**: Kilo decides what goes in the list, but you can provide feedback during approval dialogs. + +--- + +## The old way vs. the new way + +**Before**: You juggled task steps in your head or scattered notes, constantly wondering "what's next?" + +**Now**: Kilo creates structured checklists that update automatically as work progresses. You see exactly where you are and what's coming up. + +--- + +## Where todo lists appear + +**1. Task Header Summary** +Quick progress overview with your next important item + +Task header summary showing todo list progress + +**2. Interactive Tool Block** +Full todo interface in chat where you can: +- See all items and their status +- Edit descriptions when Kilo asks for approval +- Stage changes using the "Edit" button + +**3. Environment Details** +Background "REMINDERS" table that keeps Kilo informed about current progress + +## Task status decoded + +**Pending** → Empty checkbox (not started) + +Pending todo item with empty checkbox + +--- + +**In Progress** → Yellow dot (currently working) + +In progress todo item with yellow dot indicator + +--- + +**Completed** → Green checkmark (finished) + +Completed todo item with green checkmark + +--- + +## Common questions + +**"Can I create my own todo lists?"** +Yes, just ask Kilo to use the update_todo_list tool. But Kilo stays in control of the content and workflow. + +**"What about simple tasks?"** +Kilo typically skips todo lists for simple tasks. The overhead isn't worth it. + +**"Why can't I directly edit the list?"** +Design choice. Kilo maintains authority over task management to ensure consistent progress tracking. You provide input, Kilo executes. + +--- + +:::tip + +## Pro tip: Auto-approval + +**What it does**: Automatically approves todo list updates without confirmation prompts. + +**When to use it**: Long workflows where constant interruptions slow you down. + +**How to enable it**: Check the [Update Todo List auto-approval settings](/features/auto-approving-actions#update-todo-list). + +**The catch**: Less control, but faster execution. + +::: \ No newline at end of file diff --git a/docs/features/auto-approving-actions.md b/docs/features/auto-approving-actions.md index 4c460c0..3d858f3 100644 --- a/docs/features/auto-approving-actions.md +++ b/docs/features/auto-approving-actions.md @@ -34,6 +34,8 @@ Click the toolbar to expand it and configure individual permissions: | **Switch modes** | Changes between Kilo Code modes automatically | Low | | **Create & complete subtasks** | Manages subtasks without confirmation | Low | | **Retry failed requests** | Automatically retries failed API requests | Low | +| **Answer follow-up questions** | Selects default answer for follow-up questions| Low | +| **Update todo list** | Automatically updates task progress | Low | ## Master Toggle for Quick Control @@ -222,3 +224,60 @@ This setting allows terminal command execution with controls. While risky, the w - "Add" button to add new prefixes - Clickable command buttons with X to remove them ::: + +### Follow-Up Questions + +:::info Follow-Up Questions (Risk: Low) + +**Setting:** `Always default answer for follow-up questions` + +**Description:** Automatically selects the first AI-suggested answer for a follow-up question after a configurable timeout. This speeds up your workflow by letting Roo proceed without manual intervention. + +**Visual countdown:** When enabled, a countdown timer appears on the first suggestion button, showing the remaining time before auto-selection. The timer is displayed as a circular progress indicator that depletes as time passes. + +**Timeout slider:** Use the slider to set the wait time from 1 to 300 seconds (Default: 60s). + +**Override options:** You can cancel the auto-selection at any time by: +- Clicking a different suggestion +- Editing any suggestion +- Typing your own response +- Clicking the timer to pause it + +**Risk level:** Low + +**Use cases:** +- Overnight runs where you want Roo to continue working +- Repetitive tasks where the default suggestions are usually correct +- Testing workflows where interaction isn't critical +::: + +### Update Todo List + +:::info Update Todo List (Risk: Low) + +**Setting:** "Always approve todo list updates" + +**Description:** "Automatically update the to-do list without requiring approval" + +**Risk level:** Low + +This setting allows Roo to automatically update task progress and todo lists during work sessions. This includes: +- Marking tasks as completed +- Adding new discovered tasks +- Updating task status (pending, in progress, completed) +- Reorganizing task priorities + +**Benefits:** +- Maintains real-time task progress visibility +- Reduces interruptions during multi-step workflows +- Keeps project status accurately reflected +- Helps track complex task dependencies + +**Use cases:** +- Long-running development sessions +- Multi-step refactoring projects +- Complex debugging workflows +- Feature implementation with many subtasks + +This is particularly useful when combined with the Subtasks permission, as it allows Roo to maintain a complete picture of project progress without constant approval requests. +::: diff --git a/docs/features/tools/tool-use-overview.md b/docs/features/tools/tool-use-overview.md index 7bc9c1c..9783605 100644 --- a/docs/features/tools/tool-use-overview.md +++ b/docs/features/tools/tool-use-overview.md @@ -15,7 +15,7 @@ Tools are organized into logical groups based on their functionality: | **Browser Group** | Web automation | [browser_action](/features/tools/browser-action) | Web testing and interaction | | **Command Group** | System command execution | [execute_command](/features/tools/execute-command) | Running scripts, building projects | | **MCP Group** | External tool integration | [use_mcp_tool](/features/tools/use-mcp-tool), [access_mcp_resource](/features/tools/access-mcp-resource) | Specialized functionality through external servers | -| **Workflow Group** | Mode and task management | [switch_mode](/features/tools/switch-mode), [new_task](/features/tools/new-task), [ask_followup_question](/features/tools/ask-followup-question), [attempt_completion](/features/tools/attempt-completion) | Context switching and task organization | +| **Workflow Group** | Mode and task management | [switch_mode](/features/tools/switch-mode), [new_task](/features/tools/new-task), [ask_followup_question](/features/tools/ask-followup-question), [attempt_completion](/features/tools/attempt-completion), [update_todo_list](/features/tools/update-todo-list) | Context switching and task organization | ### Always Available Tools @@ -25,6 +25,7 @@ Certain tools are accessible regardless of the current mode: - [attempt_completion](/features/tools/attempt-completion): Signal task completion - [switch_mode](/features/tools/switch-mode): Change operational modes - [new_task](/features/tools/new-task): Create subtasks +- [update_todo_list](/features/tools/update-todo-list): Manage step-by-step task tracking ## Available Tools @@ -65,6 +66,7 @@ These tools help manage the conversation and task flow: - [attempt_completion](/features/tools/attempt-completion) - Presents final results - [switch_mode](/features/tools/switch-mode) - Changes to a different mode for specialized tasks - [new_task](/features/tools/new-task) - Creates a new subtask +- [update_todo_list](/features/tools/update-todo-list) - Tracks task progress with step-by-step checklists ## Tool Calling Mechanism @@ -207,6 +209,11 @@ Tools are made available based on the current mode: [new_task](/features/tools/new-task) → [switch_mode](/features/tools/switch-mode) → [execute_command](/features/tools/execute-command) ``` +4. **Progress Tracking** + ``` + [update_todo_list](/features/tools/update-todo-list) → [execute_command](/features/tools/execute-command) → [update_todo_list](/features/tools/update-todo-list) + ``` + ## Error Handling and Recovery ### Error Types diff --git a/docs/features/tools/update-todo-list.md b/docs/features/tools/update-todo-list.md new file mode 100644 index 0000000..9fd1e88 --- /dev/null +++ b/docs/features/tools/update-todo-list.md @@ -0,0 +1,159 @@ +# update_todo_list + +The `update_todo_list` tool replaces the entire TODO list with an updated checklist reflecting the current state. It provides step-by-step task tracking, allowing confirmation of completion before updating and dynamic addition of new todos discovered during complex tasks. + +## Parameters + +The tool accepts these parameters: + +- `todos` (required): A markdown checklist with task descriptions and status indicators + +## What It Does + +This tool manages a comprehensive TODO list that tracks task progress through different status states. It replaces the entire list with each update, ensuring the current state accurately reflects all pending, in-progress, and completed tasks. The system displays the TODO list as reminders in subsequent messages. + +## When is it used? + +- When tasks involve multiple steps requiring systematic tracking +- When new actionable items are discovered during task execution +- When updating the status of several todos simultaneously +- When complex projects benefit from clear, stepwise progress tracking +- When organizing multi-phase workflows with dependencies + +## Key Features + +- Maintains a single-level markdown checklist with three status states +- Updates multiple task statuses in a single operation +- Dynamically adds new todos as they're discovered during execution +- Provides visual progress tracking through status indicators +- Integrates with the reminder system for persistent task visibility +- Supports task reordering based on execution priority +- Preserves all unfinished tasks unless explicitly removed +- Enables efficient batch status updates + +## Limitations + +- Limited to single-level checklists (no nesting or subtasks) +- Cannot remove tasks unless they're completed or no longer relevant +- Requires complete list replacement rather than incremental updates +- Status changes must be explicitly managed through tool calls +- No built-in task dependency tracking +- Cannot schedule tasks for future execution +- Limited to three status states (pending, in-progress, completed) + +## Status Indicators + +The tool uses three distinct status indicators: + +- `[ ]` **Pending**: Task not yet started +- `[-]` **In Progress**: Task currently being worked on +- `[x]` **Completed**: Task fully finished with no unresolved issues + +## How It Works + +When the `update_todo_list` tool is invoked, it follows this process: + +1. **Status Validation**: + - Parses the markdown checklist format + - Validates status indicators are properly formatted + - Ensures task descriptions are clear and actionable + +2. **List Replacement**: + - Completely replaces the existing TODO list + - Preserves task order as specified in the update + - Maintains task descriptions and status states + +3. **Reminder Integration**: + - Integrates updated list with the reminder system + - Displays current tasks in subsequent message headers + - Provides persistent visibility of task progress + +4. **Progress Tracking**: + - Tracks completion status across multiple updates + - Maintains task history for reference + - Supports workflow continuation across sessions + +## Best Practices + +### Task Management Guidelines + +- Mark tasks as completed immediately after all work is finished +- Start the next task by marking it as in-progress +- Add new todos as soon as they are identified during execution +- Use clear, descriptive task names that indicate specific actions +- Order tasks by logical execution sequence or priority + +### Status Update Patterns + +- Update multiple statuses simultaneously when transitioning between tasks +- Confirm task completion before marking as finished +- Keep in-progress tasks focused on current work +- Add blocking tasks when dependencies are discovered + +### When to Use + +Use this tool when: +- The task involves multiple steps or requires ongoing tracking +- New actionable items are discovered during task execution +- Multiple todos need status updates simultaneously +- Complex tasks benefit from clear progress visualization + +Avoid using when: +- There is only a single, trivial task +- The task can be completed in one or two simple steps +- The request is purely conversational or informational + +## Examples When Used + +- When implementing a multi-component feature requiring frontend, backend, and database changes +- When debugging issues that reveal multiple related problems requiring fixes +- When setting up development environments with multiple configuration steps +- When documenting systems that require research, writing, and review phases +- When refactoring code that affects multiple files and requires testing + +## Usage Examples + +Initial task breakdown: +``` + + +[-] Analyze requirements and create technical specification +[ ] Design database schema and API endpoints +[ ] Implement backend authentication service +[ ] Create frontend login components +[ ] Write comprehensive tests +[ ] Update documentation + + +``` + +Updating progress and adding discovered tasks: +``` + + +[x] Analyze requirements and create technical specification +[x] Design database schema and API endpoints +[-] Implement backend authentication service +[ ] Create frontend login components +[ ] Write comprehensive tests +[ ] Update documentation +[ ] Add password reset functionality +[ ] Implement rate limiting for login attempts + + +``` + +Completing multiple tasks and transitioning focus: +``` + + +[x] Analyze requirements and create technical specification +[x] Design database schema and API endpoints +[x] Implement backend authentication service +[x] Create frontend login components +[-] Write comprehensive tests +[ ] Update documentation +[ ] Add password reset functionality +[ ] Implement rate limiting for login attempts + + \ No newline at end of file diff --git a/sidebars.ts b/sidebars.ts index ce7a5f8..9dfa215 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -28,6 +28,7 @@ const sidebars: SidebarsConfig = { label: 'Basic Features', items: [ 'basic-usage/orchestrator-mode', + 'basic-usage/task-todo-list', 'basic-usage/git-commit-generation', 'features/browser-use', 'features/code-actions', @@ -159,6 +160,7 @@ const sidebars: SidebarsConfig = { 'features/tools/read-file', 'features/tools/search-files', 'features/tools/switch-mode', + 'features/tools/update-todo-list', 'features/tools/use-mcp-tool', 'features/tools/write-to-file', ], diff --git a/static/img/task-todo-list/complete.png b/static/img/task-todo-list/complete.png new file mode 100644 index 0000000..3946ce7 Binary files /dev/null and b/static/img/task-todo-list/complete.png differ diff --git a/static/img/task-todo-list/in-progress.png b/static/img/task-todo-list/in-progress.png new file mode 100644 index 0000000..e1e7dbf Binary files /dev/null and b/static/img/task-todo-list/in-progress.png differ diff --git a/static/img/task-todo-list/not-started.png b/static/img/task-todo-list/not-started.png new file mode 100644 index 0000000..41001cd Binary files /dev/null and b/static/img/task-todo-list/not-started.png differ diff --git a/static/img/task-todo-list/task-header.png b/static/img/task-todo-list/task-header.png new file mode 100644 index 0000000..96119b3 Binary files /dev/null and b/static/img/task-todo-list/task-header.png differ diff --git a/static/img/task-todo-list/task-todo-list-1.png b/static/img/task-todo-list/task-todo-list-1.png new file mode 100644 index 0000000..a5600c9 Binary files /dev/null and b/static/img/task-todo-list/task-todo-list-1.png differ