Вы просите Cursor Agent изменить модуль платежей в monorepo, а он правит DTO пользовательского центра. Claude Code выполняет двадцать раундов bash и забывает «никогда не импортировать внутренние legacy-пакеты напрямую». Это не внезапное «ослабление» модели — это самый частый сбой в больших проектах: потеря контекста.
В 2026 году и Cursor, и Claude Code рекламируют контекст на миллион токенов, но на реальных инженерных этажах «забыл нашу договорённость» всё ещё случается часто. Эта статья даёт повторяемый метод из пяти шагов: сначала классифицируйте, как потерялся контекст, затем по порядку проверьте бюджет, индекс, границы, соглашения репозитория и стратегию сессий. Версии инструментов на 2026-07-17 (Cursor 1.x, актуальный CLI Claude Code).
Краткий ответ: обзор пяти шагов
| Шаг | Что проверяете | Типичное действие | Сигнал успеха |
|---|---|---|---|
| 1. Классификация симптомов | Обрезка сессии / промах индекса / правила не загружены | Используйте таблицу ниже — не меняйте модель первым делом | Понятно, чинить «сессию» или «репозиторий» |
| 2. Бюджет контекста | Раунды инструментов и авто-инъекция заполняют окно | Закройте лишние вкладки, уменьшите @-файлы, возьмите меньшую модель для разведки | Меньше повторных инструкций; diff перестают противоречить друг другу |
| 3. Пересборка индекса | .cursorignore, огромные каталоги, устаревший индекс | Reindex; исключите node_modules / DerivedData | Agent сам находит нужный путь пакета |
| 4. Границы задачи | Слишком широкая область работы | Рабочая область подкаталога, явная @-цепочка вызовов, блок передачи | Изменённые файлы остаются в ожидаемом модуле |
| 5. Соглашения в репозитории | Устные правила не стали поисковым текстом | AGENTS.md, .cursor/rules, разбиение длинных сессий | Новые сессии соблюдают те же ограничения |
Что значит «потеря контекста» в большом проекте?
Сначала согласуем термины: длинное окно контекста отвечает на вопрос «поместится ли столько токенов прямо сейчас?» Эффективный контекст — «какие факты модель реально использовала для этого решения?» Разрыв между ними в больших репозиториях шире — см. нашу статью о долговременной памяти в AI-программировании.
Когда инженеры говорят, что контекст «потерялся», обычно это одна из трёх категорий:
| Тип | Что видите | Частая причина | Проверить сначала |
|---|---|---|---|
| A. Обрезка сессии | Один поток дрейфует; ранние ограничения отменяются | Многораундовый вывод инструментов вытесняет ранние инструкции; compact / сводка теряет детали | Шаги 2, 5 |
| B. Промах индекса | «Не могу найти модуль» / «считает, что таблицы нет» | Слишком агрессивный ignore, устаревший индекс, слишком большой репо с шумным поиском | Шаги 3, 4 |
| C. Правила не загружены | Новая сессия забывает стиль именования и запрещённые пути | Правила только в чате; отсутствует или слишком длинный AGENTS.md | Шаг 5 |
Шаг 1: Сначала классифицируйте — не считайте каждое «забыл» проблемой модели
При ошибке или абсурдном diff пройдите это дерево решений за 60 секунд:
- Та же сессия противоречит сама себе? → Вероятно A обрезка сессии — шаг 2.
- Новая сессия забывает договорённости? → Вероятно C правила не загружены — шаг 5.
- Модель настаивает, что файла нет, а
grepнаходит? → Вероятно B промах индекса — шаги 3–4. - Ошибка
context length exceeded/prompt is too long? → Явная проблема бюджета — сразу шаг 2.
Cursor и Claude Code немного различаются: Cursor Composer / Agent автоматически подставляет открытые файлы и фрагменты индекса, поэтому IDE может «тихо раздуть» окно; терминальные Agent Claude Code чаще теряют промежуточные решения после длинных bash-цепочек + auto-compact. Сравнение инструментов — в гиде по выбору 2026.
Шаг 2: Проверьте бюджет контекста — большое окно не означает автоматическую экономию
Реальное потребление токенов в одной задаче Agent обычно складывается из: системного промпта + файлов правил + @-файлов + вывода инструментов (grep, логи тестов) + сводки истории. В monorepo TypeScript на 120k строк один запуск Cursor Agent, который автоматически читает восемь связанных файлов и гоняет полный набор тестов, легко даёт 80K–120K входных токенов — до повторных попыток.
2.1 На стороне Cursor
- Закройте вкладки редактора, не связанные с задачей; не держите открытыми огромные JSON или lock-файлы.
- Для разведки используйте модель с меньшим контекстом или обычный Chat; Agent открывайте, когда план ясен.
- Не связывайте в одном Composer «рефакторинг + тесты + CI» — разбейте на три задачи с явным списком файлов.
- Следите за Codebase indexing в Settings; при сбое индекса Agent откатывается к grep, и окно раздувается быстрее.
2.2 На стороне Claude Code
- На длинных задачах следите за auto-compact; после compact вставьте фиксированный блок «нельзя нарушать».
- Перенаправляйте огромный вывод команд в файл и просите Agent
tailключевых строк вместо 5000 строк лога в чат. - Перед
/clearили новой сессией запишите выводы вHANDOFF.mdили комментарий к issue.
| Сигнал | Вероятная причина | Действие сейчас |
|---|---|---|
| Правки ухудшаются к концу | Ранние ограничения вытеснены из окна | Новая сессия + блок передачи + более короткая задача |
| Счёт API резко растёт на одной задаче | Повторное чтение больших файлов / полный вывод тестов | Ограничьте область тестов; используйте head/tail |
| Ошибка «Context exceeded» | Достигнут жёсткий лимит | Меньше @-файлов, разбейте задачу, модель для разведки |
Шаг 3: Пересоберите индекс и настройте ignore — помогите Agent «найти» код
Суть типа B: модель не отказывается искать — retrieval не доставил нужный файл.
3.1 Проверьте .cursorignore / .claudeignore
Разумные ignore экономят время индекса; чрезмерный ignore создаёт «слепые зоны». Продолжайте исключать:
node_modules/,.git/,dist/,build/,DerivedData/- Каталоги с огромным сгенерированным кодом (если нужно править generated — явно @ один файл)
- Бинарники и медиа-ресурсы
Не игнорируйте бездумно бизнес-пакеты с исходниками — многие команды исключают весь legacy/, а потом удивляются, почему Agent не видит слой совместимости.
3.2 Запустите reindex
Cursor: Settings → Indexing & Docs → Resync Index (формулировка зависит от версии). Первый полный индекс большого репо на M4 часто занимает 15–40 минут; если на ноутбуке параллельно Ollama + Xcode, имеет смысл индексировать на выделенном облачном узле Mac, чтобы избежать swap и таймаутов IDE и Agent — согласуется с выводами о памяти в наших бенчмарках AI-программирования на M4.
git ls-files | wc -l и сравнивать с числом проиндексированных файлов. При резком падении покрытия запланируйте общий Reindex вместо того, чтобы каждый перезапускал Cursor наугад.Шаг 4: Задайте границы — «весь репозиторий сразу» — враг
Иногда потеря контекста — это на самом деле слишком широкое определение задачи: вы просите «оптимизировать платежи», а модель чуть-чуть трогает сорок пакетов.
4.1 Сузьте рабочую область
- Используйте multi-root workspace VS Code / Cursor — откройте только
apps/checkout+packages/payment-sdk. - Запускайте Claude Code в подкаталоге:
cd apps/checkout && claude, чтобы посторонние пути не попадали в retrieval.
4.2 Явная @-цепочка вызовов
При изменении API @ как минимум: определение интерфейса → серверная реализация → один реальный вызывающий код → связанный тест. В full-stack репозиториях Vue + Spring Boot добавление @ по цепочке вызовов снизило «забыл фронтенд» примерно с 40% до менее 10% — более системный подход в нашем кейсе CodeGraph.
4.3 Шаблон блока передачи
Перед сменой сессии на длинной задаче вставьте фиксированную структуру:
## Handoff
- Goal:
- Done:
- Not done:
- Non-negotiable: (paths / naming / forbidden imports)
- Suggested files to open next:
Это лучше, чем «суммируй выше», потому что пункты проверяемы, а не проза, где теряются ограничения.
Шаг 5: Зафиксируйте соглашения в репозитории и научитесь разбивать сессии
Исправление типа C: сделайте правила частью репозитория, а не чата.
5.1 AGENTS.md и Cursor Rules
В корне репозитория поддерживайте короткие, actionable соглашения (цель — < 200 строк; при большем объёме разбейте):
- Границы модулей и пути «не давать ИИ править» (например
generated/,vendor/) - Стиль именования и обработки ошибок (по одному хорошему и плохому примеру)
- Чеклист: какие слои менять при изменении API
- Команды, которые обязательно запускать:
pnpm test payment --filter=...
Cursor читает .cursor/rules; Claude Code — AGENTS.md и CLAUDE.md. Держите их фактически согласованными — противоречивые копии путают оба инструмента.
5.2 Когда разбивать сессии
| Сценарий | Рекомендация |
|---|---|
| Одна фича смержена; начинаете следующую | Новая сессия + Handoff |
| Agent три раза подряд не понимает задачу | Стоп, напишите Handoff, сузьте @-область |
| Сработал compact / полоска контекста за половину | Сохраните соглашения на диск перед продолжением |
| Продолжаете на следующий день | Всегда новая сессия + ссылка на PR/issue |
Когда цепочки вызовов охватывают дюжину пакетов и @-файлов всё равно не хватает, тогда оцените инструменты графа знаний кода — это усиление после шага 5, а не первый ход.
Кейс: 45 минут на monorepo в 120k строк
Команда B2B SaaS (8 backend + 4 frontend) использует Cursor + Claude Code в pnpm monorepo (~118k LOC, 6 apps, 23 packages). Симптом: когда Agent правил billing-api, он снова и снова ломал экспорт типов из auth-middleware — и новые сессии повторяли это.
| Порядок | Находка | Действие | Результат |
|---|---|---|---|
| Шаг 1 | Новые сессии тоже забывали правила → тип C | Подтвердили отсутствие AGENTS.md | Корневая причина найдена |
| Шаг 3 | .cursorignore ошибочно исключал packages/auth | Исправили ignore + Reindex | Agent мог ссылаться на middleware |
| Шаг 4 | Задача «fix billing» слишком широкая | Область сужена до billing + auth; @ тесты | Файлов затронуто: с 19 до 6 |
| Шаг 5 | Устные правила не были записаны | Добавили AGENTS.md на 120 строк + CI-проверку границ import | Неделю PR без регрессий того же класса |
Они не перешли на более дорогую модель. Среднее число токенов на задачу упало ~на 35%, потому что Agent перестал гонять полный grep по репозиторию. Reindex и ночные тесты перенесли на облачный узел Macstripe 24GB; ноутбук только подключался по SSH для кода — предупреждения swap при индексации исчезли.
Чеклист самопроверки: 2 минуты перед стартом
- ☐ Вы можете назвать, относится ли задача к типу A, B или C
- ☐ В редакторе только нужные файлы; нет открытых огромных логов
- ☐
.cursorignoreне исключает бизнес-исходники - ☐ Индекс здоров или Reindex запланирован
- ☐ Область workspace ≤ 2–3 связанных пакета
- ☐ Ключевые файлы цепочки вызовов @ (включая один тест)
- ☐
AGENTS.mdперечисляет непреложные правила для этой задачи - ☐ Шаблон Handoff готов для длинной задачи
FAQ
Окно контекста заявлено как 200K — почему контекст всё равно теряется?
Окно — это потолок ёмкости, а не гарантия внимания. Многораундовые вызовы инструментов Agent вытесняют ранние инструкции из эффективного внимания; сводки compact теряют детали. Поисковые соглашения в репозитории надёжнее более длинной истории чата.
Кто чаще теряет контекст — Cursor или Claude Code?
Cursor чаще теряет границы из-за авто-инъекции в IDE и длинных цепочек Composer; Claude Code чаще теряет промежуточные решения после длинных bash-запусков и compact. Оба нуждаются в явных @, AGENTS.md и разбиении задач — ни один не «проще».
Влияет ли .cursorignore на ручные @-ссылки?
Ручной @ одного файла обычно всё ещё работает; ломается индексация всего репо и авто-поиск. Игнорируемые каталоги требуют явного @, иначе Agent не найдёт их сам.
Стоит ли добавить граф знаний кода?
Имеет смысл пилот, когда цепочки пересекают много пакетов, а @-файлов всё равно не хватает. Для небольших репо или чётких границ сначала AGENTS.md + CI дают лучший ROI.
Поможет ли смена Mac или переход в облако?
Это не увеличит контекст модели, но выделенный M4 на 24 ГБ снижает swap при индексации и тестах, избегая таймаутов Agent — и может быть общей средой команды для «тяжёлых» задач. Попробуйте посуточно, чтобы проверить.
Итог
«Потеря контекста» в Cursor / Claude Code в больших проектах — в основном инженерная проблема, а не то, что волшебно лечит новый тариф модели. Пройдите эти пять шагов — классификация симптомов → бюджет → пересборка индекса → границы → AGENTS.md и разбиение сессий — и вы обычно тратите меньше и получаете более стабильный результат, чем слепо включая Max mode.
- Дрейф внутри сессии: уменьшите инъекцию, разбейте задачи, используйте Handoff.
- Не находит файлы: исправьте ignore, Reindex, сузьте workspace.
- Новая сессия забывает: зафиксируйте соглашения в репо; пусть CI их проверяет.
Дальше после шага 5 читайте про долговременную память и графы знаний кода как усиления.