Когда для кода нужен Cursor, а когда хватает обычного чата

Два стола: слева открытый блокнот, справа стопка папок с документами

Один и тот же баг по-разному выглядит в переписке и в папке проекта. В переписке есть только тот кусок, который вы вставили. В папке есть остальные файлы, в том числе тот, о котором вы забыли. Поэтому спор «чат или редактор» — это не спор о том, какая модель умнее. Это выбор, где лежит код, с которым вы готовы сверять ответ.

Речь об обычном диалоге вроде ChatGPT, куда код попадает вставкой, и о Cursor, где агент работает в открытой папке. Если вы уже правите файлы помощником внутри редактора, сам жест вам знаком. Этот текст не расставляет Copilot и Cursor по местам и не описывает режимы Copilot: для такого сравнения нужны отдельные страницы справки Microsoft, и их здесь нет.

Цитата видит только вставленные строки

В диалоге вы приносите фрагмент сами. Хороший ответ объясняет эти строки, предлагает замену и останавливается. Применить её к проекту должны вы. Модель не видит соседний файл, конфигурацию и тест, пока вы их не вставите. Фраза «у тебя есть доступ к репозиторию» ничего не открывает, если доступа нет.

Такого окна хватает, когда вопрос закрывается цитатой. Объяснить функцию, которую вы сами скопировали, включая краевые случаи, видимые в этих строках. Разобрать текст ошибки, если вместе с ней вставлено сообщение и кусок, на который оно ссылается. Набросать сообщение коммита по diff, который вы вставили целиком. Вспомнить, как устроена очередь или транзакция, без привязки к вашим файлам. Редактор здесь не добавляет фактов. Он только создаёт риск, что агент «заодно» поправит соседний код.

В это окно не кладут ключи и боевые пути. Что именно можно принести словами, не открывая файл с секретами, уже разобрано отдельно: ошибка в коде словами. И тему в одном окне лучше не смешивать с чужим релизом. Заметка про один кусок кода, не обзор анонса как раз про это: вопрос к фрагменту, который вы видите, а не пересказ чужой новости в том же сообщении.

Открытая папка видит соседние файлы

В Cursor папку выбирают через File → Open Folder. Agent по справке ищет по кодовой базе, правит несколько файлов и может запускать команды. Ask в том же редакторе файлы не меняет: им пользуются, чтобы найти место, а не чтобы сразу его переписать. Панель открывается Cmd+I на Mac и Ctrl+I на Windows и Linux. Переключение режимов — список в панели или Shift+Tab. Это приложение, которое ставится к себе: аккаунт и загрузка живут на cursor.com, а русскоязычный гид проект за вас не открывает.

Практическое правило короткое. Пока вы хотите понять вставленные двадцать строк, диалог достаточен. Как только ответ должен совпасть с проектом, а не с цитатой, работу переносят в папку и сначала читают её в Ask. Запрос «почини мой баг» без кода оставляет модели только типичную историю похожих багов. Она заполнит пробел правдоподобным файлом. То же происходит, если файлов несколько, а вставлен один: правка обработчика кнопки не отменяет слушатель на форме.

Двойной заказ разбирается двумя запросами

Симптом для всего дальнейшего примера один. Человек нажимает «Отправить» один раз, а заказ создаётся дважды. В диалог вставлен обработчик кнопки. Он вызывает submitOrder() и больше ничего заметного не делает. Чат пишет, что в этом фрагменте повторного вызова нет, и предлагает добавить блокировку кнопки. Совет выглядит пригодным. Он может быть лишним, если второй вызов сидит в другом файле: форма сама слушает submit, а кнопка ещё и вызывает функцию вручную.

Пока на столе один обработчик

Запрос, который не раздувает выдумку:

Ниже единственный фрагмент, который у меня есть. Скажи, виден ли в нём повторный вызов. Если нет, перечисли, каких файлов не хватает, чтобы это проверить. Не пиши новый модуль оформления заказа.

Полезный ответ заканчивается списком недостающего: обработчик формы, место навешивания слушателя, код создания заказа. Бесполезный ответ приносит «исправленный checkout» на сто строк, хотя исходных файлов в переписке не было. На этом диалог честен: он показал границу цитаты. Переносить в проект блокировку кнопки, пока второй вызов не найден, рано.

Когда второй вызов может сидеть на форме

Дальше папка. В Cursor, в Ask:

Найди все места, которые создают заказ из этой формы. Назови файлы и строки. Ничего не меняй. Если отправка есть и на кнопке, и на submit формы, так и напиши.

Когда файлы подтверждены и вы узнали их в своём дереве, отдельным шагом в Agent:

Убери повторную отправку. Оставь одну: submit формы. Не меняй проверку полей, цены и текст кнопки. Покажи diff. Если в проекте есть тест на эту форму, запусти его и приведи команду. Если теста нет, не создавай новый в этом заходе.

Разница не в длине ответа. В первом случае модель ограничена цитатой. Во втором она обязана показать файлы. Когда остаётся выбрать, какой режим оставить включённым, короткие границы такие: Ask читает, Agent пишет, Plan для большой задачи сначала ждёт план. Для двойной отправки план обычно не нужен: объём виден после поиска в Ask. Включать его для двадцати строк только удлиняет путь. Это развилка внутри редактора, а не замена диалогу там, где папка не нужна.

Отдельный признак путаницы — просьба «прогони тесты». В обычном диалоге прогон не происходит, даже если ответ пишет «я проверил». Проверкой будет команда в вашем проекте или явная оговорка, что запуска не было. В Quickstart после diff как раз предлагают те проверки, которые в проекте уже есть: тесты, типы, линтер, локальную сборку. Итог без имени команды по-прежнему не считается. Сравнивать цены продуктов, чтобы выбрать между цитатой и папкой, не нужно: решает, видит ли инструмент ваши файлы в этом заходе.

Одна строка пишется в одном месте

Частая путаница: в чате уже лежит «исправленный» обработчик, и тот же файл отдают агенту. В проекте оказываются куски обоих вариантов. Выберите одно место записи. Если решение видно в вставленном фрагменте, перенесите его сами и посмотрите diff в своей системе контроля версий. Если не видно, не вставляйте догадку чата в файл: откройте папку, найдите вызовы в Ask и только потом дайте Agent узкую правку. Не просите оба инструмента «доделать» друг друга в одном заходе. Второй проход начинайте с фактического diff, а не с памяти о прошлом совете.

Перед широким заходом посмотрите git status. Checkpoint в Cursor откатывает файлы сессии агента и не заменяет коммит. Смешивать его с ручной вставкой из чата значит иметь два источника одной строки. Оставьте диалогу вопросы, на которые отвечает цитата. Отдайте папке вопросы, на которые отвечает дерево файлов. Сначала найдите место без записи, затем просите одну правку и читайте diff.

Like this post? Please share to your friends:
Copilot