How to Handle Large Projects with Limited Context

When working on large projects with Opus 4.5, the relatively limited context window (~200k tokens) often gets exhausted during the planning phase or while reviewing the overall project architecture—sometimes even before real implementation starts.

This raises a broader question about handling large-scale projects under context limitations:

  • What are the best strategies to manage context efficiently?

  • How do you structure planning, architecture reviews, and implementation to avoid losing important information?

  • Are there effective workflows or tools (summaries, checkpoints, memory files, etc.) that help preserve continuity?

On the other hand, Sonnet 4.5 Max offers a much larger context window (up to 1 million tokens).
Does this make it a better choice for large or long-running projects?
Or does a larger context introduce other trade-offs (cost, focus, reasoning quality), making a hybrid approach—using Opus for deep reasoning and Sonnet Max for context-heavy tasks—more effective?

I’m curious to hear how others choose between Opus 4.5 and Sonnet 4.5 Max when working on complex projects in Cursor, and what real-world workflows have proven successful.

Hey, great request! Here are a few proven strategies:

Core approaches to context management

  1. Phased approach (from your linked topic): Research → Plan → Execute. Split each feature into smaller tasks with separate cycles. Save the results of each phase in markdown for the next step.

  2. Use the right mode for the job:

    • Plan Mode Shift+Tab for complex features, it creates a detailed plan before coding
    • Ask Mode for exploring the codebase without making changes
    • Agent Mode for implementation
    • Docs: Modes | Cursor Docs
  3. Built-in Cursor tools:

    • /summarize for automatically compressing long chats
    • Checkpoints to roll back agent changes
    • Rules to write down domain-specific knowledge in .cursorrules
  4. Context management habits:

    • Start new chats more often, don’t try to do everything in one thread
    • Use @-mentions to load specific files
    • Cursor automatically condenses large files

On choosing models

I recommend this guide from @Artemonim: How To Optimize Your Usage: The Best AI Models to Use, version 3.0

Quick summary:

  • Opus 4.5: best for deep docs work and planning, but expensive and very context-hungry
  • Sonnet 4.5 Max: bigger context (1M tokens), but not always worth the price vs GPT-5.1/5.2
  • GPT-5.2 XHigh: great price to quality balance for most tasks
  • Hybrid approach: use Opus for critical decisions, GPT-5.1/5.2 for most work

Detailed guide for large codebases: Large Codebases | Cursor Docs

Even with 1M context, it’s still better to work in phases, it helps keep focus and quality.

I’ve worked on a few large(ish) legacy monoliths with Cursor.

One of the tricks I have is to create a few markdown buckets for common tasks.

For instance I worked on a large .NET React Monolith with lots of spread out code and coupled services and repositories.

To add a new email template I had to change about 10 different things.

Adding a markdown template that I can just tag in really helped me out a lot - once I’d done the task myself with Cursor I’d ask it to create a new markdown file with what it learned. This helps the model not forget stuff and limit the context window somewhat

1 Like

No love for Composer or Grok Code?