10.7Kпросмотров
5 декабря 2025 г.
provocationScore: 11.8K
Сделали рефакторинг большого ТЗ (в исходном всё в порядке со смыслом и полнотой, но была ужасная форма) для мобильного приложения за 1 час. И такого крутого ТЗ я не видел никогда. Есть Confluence, в нем несколько сотен страниц. Попросил Cursor создать виртуальное окружение Python (всегда в любом проекте делаю так, Python — это руки агента) и создать скрипт для рекурсивной выгрузки всех страниц в json. Получил сырые данные ТЗ локально через минуту. Это гораздо быстрее и без искажений, чем через Confluence MCP. Теперь Cursor знает всё о нашем проекте. Далее прошу создать таблицу: фича, название экрана, ID экрана, json файлы, в которых этот экран участвует. Cursor проходит по всем json и формирует картотеку экранов + кластеризацию экранов по фичам. Кстати, использую Opus-4.5. Далее прошу создать ТЗ для одного экрана, согласно лучшим индустриальным практикам. Прошу пометить emoji: что взяли из старого ТЗ явно, что предложено/додумано, что требует верификации человеком. Получаю супер результат для одного экрана. Далее в planning режиме прошу составить план для ТЗ для каждого из 120 экранов по образцу ТЗ для одного экрана. Cursor сами формирует план по фичам, а не по экранам, т.е. пунктов не 120, а 16. Исполняем план — профит. Несколько выводов:
1. Не стоит навязывать Cursor свой шаблон для результата. Весной мы пробовали выработать шаблон/формат для ТЗ, поэтому что агенты не вывозили, результаты были непредсказуемые по форме. Это больше не нужно. Не нужно запирать агента в свою убогую форму. Машина лучше нас знает, какая форма оптимальна. Наша задача — лишь управлять смыслами. 2. Задача for each посторений для агента не такая тривиальная, как кажется. Когда надо сделать сотни раз одно и то же. Это задачи миграции данных, когда данные не имеют прямого соответствия. Например, переносим данные со старого сайта на новый, когда структуры не имеют прямого соответствия. Или миграция хранимок Oracle в PostgreSQL. Такие кейсы нельзя закрыть скриптом. И нельзя закрыть цикличным вызовом gemini/chatgpt api, у них не хватит мозгов/контекста для такой неоднозначной задачи. Нужен именно агент. И в таких случаях можешь помочь только planning mode и современные модели, которые способны работать часами. 3. А в примере с простой выгрузкой из Confluence, наоборот не надо мучить агента c MCP, надо сгенерировать скрипт.