Cursor does not use a to-do list

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor does not use it for planning and construction, but updates, does not expand, and does not close tasks in the to-do list.

Also, instead of working with created to-dos, Cursor creates empty ones and already works with them, closing only empty tasks.

Steps to Reproduce

It is sufficient to work in one chat with two models.

Screenshots / Screen Recordings

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.36 (Universal)
VSCode Version: 1.105.1
Commit: 9cd7c8b6cebcbccc1242df211dee45a4b6fe15e0
Date: 2025-11-26T03:43:48.079Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.1.0

For AI issues: which model did you use?

Composer 1, Opus 4.5

For AI issues: add Request ID with privacy disabled

b5dfe208-73c5-4602-b73e-f7ed35dccf7b

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Also, an error constantly appears during operation:

After that, the models cannot see the plan at all and can no longer work with it.

2b8afd4c-812c-4cb7-a6fc-d92ba41e0f8f

Hey, thanks for the report. This is a known issue with the Agent’s to-do list functionality, and the team is actively investigating it.

As mentioned in a related topic, there’s a broader problem where to-do lists don’t always sync correctly during Agent runs. They may fail to update, not mark tasks as complete correctly, or show empty strings. Your case, where the Agent creates new empty to-dos instead of using existing ones, is likely related to the same underlying issue.

The team is already working on improvements to the to-do functionality in Plan mode, and I’ve noted your specific case where model switching seems to make the problem worse. Please let me know if you find any workarounds or additional patterns.

I think one of the problems is that Cursor creates a plan in an unknown location. I can’t get the path to it, I can’t add it as context, and in general, it looks like it doesn’t exist. It would probably be much better to allow this file to be stored in the project directory so that it can be worked with like a normal file.

Thanks for the extra context about the error that prevents models from seeing the plan.

About plan storage: you can already save plans to your workspace using the “Save to workspace” button, which stores them in .cursor/plans/. This makes them persistent and accessible. However, I understand that there are still cases where the plan becomes inaccessible during execution, and this is part of the broader issue the team is currently investigating.

Yes, I found a workaround. I think I’ll hold off on using Plan mode until you fix it. I created two commands for myself.

/plan-to-file

# Role: Implementation Architect

**Phase 1: Analysis (Conditional)**

- IF ambiguous: Ask targeted questions.
- IF clear: Skip to Phase 2.

**Phase 2: Execution Plan**
Create a strictly ordered implementation plan.

**Output Format:**

```markdown
<!-- {uuid1} {uuid2} -->

# {Task Title} - Implementation Plan

## Files Affected

- `path/to/file1.ts`
- `path/to/file2.ts`

## Steps

### {Category Name}

- [ ] **Backend/Frontend**: Description of change in `file_path` (line X)

### To-dos

- [ ] Atomic task description
```

**Rules:**

1. Generate two random UUIDs for the HTML comment header (required by Cursor)
2. Use strictly atomic steps with specific file paths
3. Include line numbers where applicable
4. Group steps by category (Critical Fixes, Performance, Features, etc.)
5. Duplicate key items in "To-dos" section for quick reference

**Output:**

- Save plan to `.cursor/plans/{task-slug}-{short-hash}.plan.md`
- Use checkbox format: `- [ ] Step description`
- The short-hash is first 8 chars of uuid1

/build

# Role: Implementation Engineer

**Input:** A plan file from `.cursor/plans/*.plan.md`

**Execution Protocol:**

1. **Load Plan:** Read the specified plan file and identify all unchecked `- [ ]` items.

2. **Process Steps Sequentially:**
   For each unchecked step in order:
   
   a. **Announce:** State which step you're implementing.
   
   b. **Implement:** Make the code changes as described.
   
   c. **Mark Complete:** Update the plan file - change `- [ ]` to `- [x]` for the completed step.
   
   d. **Continue:** Move to the next unchecked step.

3. **Sync To-dos:** When a Step is completed, also mark matching items in the "To-dos" section.

**Rules:**
- Execute steps in the order they appear in the plan
- One step at a time - verify success before proceeding
- If a step fails, stop and report the issue
- Skip already checked `- [x]` items
- Update the plan file after EACH completed step (not at the end)

**Constraint:** Use lazy output (`// ... existing code ...`) for unchanged code sections.

**On Completion:** Report summary of changes made and any remaining unchecked items.

Another advantage of this approach is that the plan does not have to be rewritten each time, but only specific amendments are made.

2 Likes

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.

Hey Igor!

This should be fixed now. If you haven’t upgraded to the latest version, please do and let us know. If you still face issues, please raise a new thread.