урок 5 из 16

Поручение целиком: агент в редакторе

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

18 мин чтения · 4 главы ·4 задания ·домашняя работа

Что меняется, когда место выбирает агент

Третья скорость: вы называете задачу, а место выбирает агент. Это единственное отличие от второй скорости, и из него следует всё остальное.

посмотрел:поиск и чтениерешил:что менятьсделал:правка файлапроверил:запуск или тестне сошлось —зановокруг может повториться десять раз, и это нормально:именно здесь агент отличается от одного ответа на один вопросно у круга нет своего признака готовности —он останавливается, когда решит, что сделал, а не когда сделал
Он ходит по кругу: посмотрел, решил, сделал, проверил. Круг повторяется, пока задача не кончится.

Пока вы ждёте, агент ходит по кругу: посмотрел — решил — сделал — проверил. Не сошлось — заново. Круг может повториться десять раз, и это нормально: именно этим агент отличается от одного ответа на один вопрос.

У круга нет своего признака готовности. Агент останавливается, когда решит, что сделал, — а не когда сделал. Это важнейшее свойство третьей скорости, и из него растут все её слабости.

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

Отсюда правило, которое звучит занудно и стоит всей главы: размер поручения определяет, сможете ли вы его принять. Задача на три файла читается за десять минут. Задача на пятнадцать файлов не читается — просматривается, а просмотренное поручение это непринятое поручение.

И третье свойство, приятное: агент в редакторе видит результат своих действий. Он может запустить код, прочитать ошибку, поправить и запустить снова — и часто именно это делает третью скорость полезной. Задача «почини вот эту падающую проверку» решается за один заход, потому что у агента есть обратная связь.

Обратная сторона того же свойства: обратная связь бывает обманчивой. Тест позеленел — значит ли это, что сделано верно? Только если тест проверяет то, что нужно. Агент, не сумевший починить код, иногда чинит тест, и это выглядит как успех до тех пор, пока вы не посмотрите в дифф.

Поручение из четырёх строк

Теперь как ставить задачу. Поручение — четыре строки, и каждая закрывает свою беду.

Что должно получитьсяне «почини отчёт», а «в отчёте появилась колонка процента»Где искать, если знаете«начни с services/report.js» экономит половину его работыЧего не делать«формат существующих колонок не меняй, зависимостей не добавляй»Как проверить: чем вы убедитесь, что готово
Длиннее не значит точнее: четыре строки закрывают то, ради чего пишут три абзаца.

Что должно получиться. Не действие, а состояние: не «почини отчёт», а «в отчёте появилась колонка процента выполнения плана». Разница в том, что второе можно проверить, а первое — нет.

Где искать, если знаете. «Начни с services/report.js» экономит половину его работы и заодно убирает главный риск третьей скорости: он не найдёт нужное место и сделает в похожем.

Чего не делать. «Формат существующих колонок не меняй», «зависимостей не добавляй», «ничего за пределами отчёта не трогай». Три строки, каждая из которых снимает класс сюрпризов.

Как проверить. «Должно совпасть с итогом внизу», «старые отчёты пересчитываться не должны». Это и ваш признак готовности, и его — он может проверить сам.

Теперь про две противоположные ошибки в размере задания.

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

Слишком крупно. «Сделай раздел отчётов» — это не задача, а направление. Агент возьмётся, сделает что-то на пятнадцать файлов, и принять это будет невозможно.

И приём, который стоит сделать привычкой на третьей скорости: сначала план, потом работа.

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

План особенно окупается в чужом коде и в первых задачах на новом проекте — там, где вы сами не знаете, где что лежит. Заодно это лучший способ узнать проект: список файлов с объяснением, что в каждом происходит, — готовая карта.

И последнее про постановку — про то, о чём спрашивают чаще всего: надо ли объяснять агенту, почему задача нужна. Короткий ответ: обычно нет, но с одной оговоркой.

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

Пока он работает

Агент работает. Вопрос, который встаёт сразу: смотреть или уйти?

Ответ зависит от того, сколько шагов он сделает, и делится довольно чётко.

ДлительностьЧто делатьПочему
меньше минутысмотретьуспеете остановить, пока не поздно
одна-пять минутсмотреть вполглазаважен момент, когда он пошёл не туда
дольше пяти минутуйти и вернутьсявнимание не держится, а остановить уже нечего

Смысл смотреть — не в контроле, а в одном моменте: когда видно, что он пошёл не туда. Он открыл не тот файл, начал править тест вместо кода, полез в соседний модуль. В этот момент остановка стоит секунду, а через три минуты — уже придётся откатывать сделанное.

Теперь про то, чего делать не стоит, пока он работает, и это неочевидно.

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

Не давать второе поручение в те же места. Два агента в одном файле — отдельная тема одиннадцатого урока, и там же сказано, почему это не работает без разделения.

Про ожидание стоит сказать ещё одно, потому что это меняет ритм дня. Пять минут ожидания — не пауза, а дыра. Их нельзя потратить ни на что осмысленное: слишком коротко для другой задачи и слишком долго, чтобы просто сидеть.

Отсюда практический вывод, который экономит больше всего: длинные поручения ставят в конец, а не в середину. Перед обедом, перед совещанием, перед уходом. Тогда ожидание попадает в то время, которое всё равно не ваше, и день не рвётся на куски.

Приёмка поручения

Поручение готово. Приёмка здесь дороже, чем на двух других скоростях, и порядок в ней важен: внимание кончается, и тратить его надо с начала на то, что ловит больше.

1. Список файлов: те ли тронутылишний файл — вопрос раньше, чем открыт первый дифф2. Размер: столько ли, сколько ждалисорок строк на задачу о трёх — сигнал, а не мелочь3. Смысл по каждому файлу4. Запуск: не «выглядит верно», а «работает»
Читают дифф, а не результат, и читают в определённом порядке — иначе внимание кончится раньше важного.

1. Список файлов. Те ли тронуты? Лишний файл — вопрос раньше, чем открыт первый дифф. Часто этого шага достаточно, чтобы отказаться: агент не нашёл нужное место и сделал в похожем, и видно это по списку, а не по коду.

2. Размер. Столько ли, сколько вы ждали? Сорок строк на задачу о трёх — сигнал, а не мелочь: значит, он сделал больше, чем просили, и надо понять, что именно.

3. Смысл по каждому файлу. Только теперь — чтение. И читают дифф, а не итоговый код: причёсанное по дороге видно только в изменениях.

4. Запуск. Не «выглядит верно», а «работает». Тот самый признак готовности, который вы назвали в поручении, — им и проверяют.

просили: «добавь в отчёт колонку процента, формат остальных не меняй»
  columns: ['Период', 'План', 'Факт',
+ 'Процент',
- 'Отклонение'],
+ 'Откл.'],

Колонка добавлена — это то, о чём просили. А соседняя переименована, потому что «так короче и таблица лучше влезает»: решение разумное, никем не заказанное и ломающее всех, кто разбирает выгрузку по именам колонок. В итоговом коде таблица выглядит опрятнее прежней.

Теперь про отказ. Откатить поручение дороже, чем правку выделенного, но дешевле, чем разбираться: тронуто несколько файлов, и вернуть их в прежнее состояние — одно действие, если вы им пользуетесь.

Про то, как именно откатывать — чекпойнты и история, — отдельный урок, седьмой. Здесь важно правило: решение «принять или откатить» принимают до того, как начали дорабатывать.

И последнее — про то, чего приёмка поручения не заменяет. Она не заменяет вашей проверки признака готовности. Дифф может быть безупречным, файлы — теми самыми, размер — ожидаемым, а отчёт всё равно не сойдётся, потому что задача была понята иначе.

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

И совсем последнее — про то, что делать с удачным поручением. Запишите его. Не фразу целиком, а то, что в ней сработало: какие границы вы назвали, какой файл указали, каким признаком готовности воспользовались.

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

Задания урока

Каждое проверяется сразу: ответ сверяется с эталоном, и на неверный вариант приходит разбор.

  1. Когда агент говорит «я закончил», это значит, что задача сделана.средне
  2. Из каких строк состоит поручение?средне
  3. Расставьте шаги приёмки поручения.средне
  4. Наполовину верное поручение выгоднее доработать руками.сложно

Практика и материалы по теме курса

Пройти урок с проверкой заданий Курс «Cursor» открыт и бесплатен, прогресс сохраняется.
Открыть курс