В какой-то момент у нас, как и у многих команд, появился соблазн проверить: а можно ли уже не просто просить AI «написать user story», а действительно встроить его в рабочий процесс аналитика? Например, дать агенту вводные по задаче, макеты в Figma, примеры документации и требования к оформлению, и получить на выходе нормальный Use Case, API-спецификацию, PlantUML-диаграмму и аккуратную страницу в Confluence.

Звучит красиво. 

Особенно если вы когда-нибудь вручную переносили сценарии из заметок в Confluence, сверяли шаги с макетами, оформляли вкладки с HTTP-запросами, проверяли коды ошибок и пытались не забыть все вопросы, которые «надо потом уточнить».

В статье расскажу, насколько мы близки к этой утопии — как протестировали работу ИИ в реальном аналитическом процессе в нескольких кейсах: для подготовки Use Case, аналитических артефактов, публикации в Confluence и в работе с Figma.

Пролог

Всем привет! Я Золотарёва Виктория, ведущий системный аналитик в команде Financial Transaction Service или просто FinService. В марте 2026 года активно обсуждалось внедрение ИИ в рабочие процессы. Аналитиков это тоже коснулось. 

Моя первая реакция была скептической: зачем мне агент, если свою работу я могу сделать быстрее сама?

Первые эксперименты этот скепсис только подтвердили. К примеру, я могла за рабочий день самостоятельно подготовить User Story и полноценный Use Case с контрактами, эндпоинтами, диаграммой и макетами. С агентом та же задача растягивалась на 3-4 дня: нужно было передать контекст, объяснить формат результата, постоянно направлять агента, а затем ещё и внимательно проверять, что он успел придумать по дороге.

Однажды в начале исследования агент предложил неверный контракт. Я явно указала на ошибку и передала актуальное решение. Но в финальной документации снова увидела неправильный контракт с неймингом, похожим на первоначальный. Агент вернулся к собственному старому решению и представил его как подтверждённое мной (а вот это уже опасно).

Проблема AI в аналитике не всегда в том, что он пишет очевидную чушь. Иногда он очень убедительно пишет неправильные вещи.

Также основную аналитическую документацию мы описывали в Confluence, а разработчики работали с кодом и агентами в GitLab. Чтобы агент разработчика мог начать работу, документацию из Confluence приходилось передавать ему как контекст. Затем он заново анализировал требования, формировал Markdown-спецификацию в GitLab и только после этого переходил к реализации.

Получалось, что один и тот же контекст фактически описывается дважды.

В какой-то момент мы с разработчиком задались вопросом: а зачем дважды описывать один и тот же сценарий сначала в Confluence, а потом GitLab? Что, если аналитик сразу подготовит спецификацию, которую агент разработчика сможет использовать почти без дополнительной переработки?

С этого и началось данное исследование — я решила проверить, насколько мы близки к этой утопии, и протестировала, как ИИ работает в реальном аналитическом процессе в нескольких кейсах: 

  • research-фазы для подготовки Use Case;

  • подготовка аналитических артефактов: user story, use case, API-спецификаций, PlantUML-диаграмм и Confluence-структуры;

  • публикация в Confluence (здесь мы использовали агентов и, что примечательно, выявили важные технические ограничения, связанные с авторизацией, storage-разметкой, вложениями, кодировкой и передачей больших данных (но об этом в статье);

  • работа с Figma: настройка токена, обращение к API, чтение нод и экспорт экранов в PNG.

В статье расскажу, где AI действительно помог, где уверенно начал придумывать лишнее, почему Confluence оказался сложнее, чем ожидалось, и какие правила я бы теперь закладывала в любой агентный сценарий для аналитика.

Спойлер: до магической кнопки далеко. Но мы получили отличный (и довольно болезненный) опыт того, как ИИ может помочь в аналитике, а где он пока просто спотыкается и обламывается.

Для самых внимательных в конце оставлю ссылку на диск со всеми style guide и результатом генерации, чтобы вы могли самостоятельно проверить подход в своей работе —>

Рабочее пространство/область работы с агентом Cursor
Рабочее пространство/область работы с агентом Cursor

Четыре гипотезы

Исследование было направлено на проверку нескольких практических гипотез.

  • Первая гипотеза заключалась в том, что AI может ускорить подготовку аналитических артефактов: user story, use case, acceptance criteria, API-спецификаций и описаний бизнес-процессов.

  • Вторая была связана с качеством требований: проверялось, может ли AI не только писать текст, но и выявлять пропуски, противоречия, неоднозначные формулировки и открытые вопросы.

  • Третья гипотеза касалась агентных сценариев — можно ли использовать AI-агента как участника рабочего процесса: чтобы он читал макеты, работал с файлами, формировал спецификации, готовил Confluence-разметку и помогал публиковать результат.

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

В результате исследование охватило не только «полезные сценарии», но и реальные технические сбои, которые важно учитывать при внедрении AI в аналитическую работу. 

Использовать ИИ, чтобы написать требования, — сразу нет

В списке выше нет гипотез «Может ли ИИ написать требования с нуля», потому что первый же эксперимент показал, что для аналитической работы недостаточно просто попросить AI «написать требования». Такая формулировка может дать быстрый черновик, но не гарантирует корректность. 

К примеру:

  • если во входных данных отсутствует endpoint, AI может предложить его по аналогии;

  • если не описаны ошибки, он может добавить типовые коды;

  • если в макете не виден текст кнопки, AI может восстановить его по смыслу. 

Внешне результат выглядит аккуратно, но для разработки и тестирования такие допущения опасны, потому что ИИ подменяет неизвестность своими выдумками.

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

Для этого был применен целевой уровень неопределенности — 0,1. Это означает, что перед подготовкой финального артефакта все ключевые вопросы должны быть закрыты или явно вынесены в список открытых вопросов. Если неопределенность выше, агент не должен формировать финальный use case, domain-spec или диаграмму.

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

Spec Driven Development

Следующая идея появилась после разговора с разработчиком, — чтобы ИИ не ушел в свободный полет, мы приручили его методологией Spec Driven Development. В контексте системного анализа он был применен не как подход к автоматической генерации кода, а как способ выстроить управляемую цепочку аналитических артефактов.

Суть подхода в том, что спецификация становится центральным рабочим артефактом. Работа начинается не с написания итогового документа, а с последовательного уточнения того, что должно быть реализовано, какие сценарии должны поддерживаться, какие данные нужны, какие ограничения существуют и какие вопросы остаются открытыми.

В исследовании этот подход был адаптирован следующим образом:

Исследование → Открытые вопросы → Зафиксированные факты → Domain-spec → OpenAPI → Confluence UC

На первом этапе собираются вводные и фиксируются неопределенности. На втором этапе подтвержденные факты переносятся в findings. После этого формируется domain-spec, который становится основой для API-спецификации, диаграммы взаимодействия и страницы use case в Confluence.

Такой процесс снижает риск того, что AI перенесет ошибку из раннего этапа в финальный документ. 

  • Если вопрос не закрыт, он остается в research-фазе. 

  • Если поле API не подтверждено, оно не должно появляться в спецификации. 

  • Если сценарий не согласован, он не должен попадать в Confluence как финальное требование.

Spec Driven Development в этом контексте оказался полезен не как модная методология, а как практический способ дисциплинировать работу с AI

Дерево файлов проекта в IntelliJ IDEA: здесь хранятся промты, правила, style guide, материалы по UC и инструменты для публикации документации в Confluence.
Дерево файлов проекта в IntelliJ IDEA: здесь хранятся промты, правила, style guide, материалы по UC и инструменты для публикации документации в Confluence.

Итак, исследование

Дальше вас ждут несколько кейсов. Пересказывать всё исследование нет смысла, потому постараюсь кратко. Также важный нюанс — один кейс может проверять несколько гипотез.

Кейс №1. Подготовить Use Case? Да, но с нюансами

Задача research-фазы — собрать все данные, необходимые для будущего UC: цель сценария, точки входа, пользовательские действия, данные для отображения, API-вызовы, успешные и ошибочные ответы, предусловия, постусловия, бизнес-правила, ограничения и исключения из scope. Решили проверить, как с этим справится агент и «скинули» ему задачи анализировать вводные, фиксировать подтвержденные факты и выявлять недостающую информацию, при этом агент не должен писать финальный UC.

Для этого были определены рабочие файлы:

  • README.md — общий контекст и статус (в т.ч. та самая неопределенность).

  • open-questions.md — журнал вопросов, зависимостей и допущений.

  • findings.md — только подтвержденные факты.

findings.md, куда агент в ходе исследования складывает подтверждённые факты, сравнение «до/после» и найденные изменения, чтобы затем на их основе подготовить domain-spec при неопределённости не выше 0,1
findings.md, куда агент в ходе исследования складывает подтверждённые факты, сравнение «до/после» и найденные изменения, чтобы затем на их основе подготовить domain-spec при неопределённости не выше 0,1

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

Основной вывод из этого кейса: до применения такого подхода AI мог сразу предлагать готовый use case, даже если часть информации отсутствовала. После введения research-фазы процесс стал более контролируемым: сначала фиксируются пробелы, затем уточняются данные и только после этого формируется спецификация.

Кейс №2: Подготовка аналитических артефактов

Следующим направлением стала подготовка style guide и промптов для разных типов аналитических документов. Style guide был сделан с помощью модели LLM на основе ранее составленных user story.

Сначала я пыталась описать все правила работы агента одной большой инструкцией, но затем агент начал смешивать требования разных артефактов: правила User Story переносились в Use Case, подход к UC влиял на API-спецификацию. Поэтому каждый тип артефакта получил собственный style guide.

Первые правила я описывала с нуля на основе своего опыта и уже выстроенного формата документации.

  • Были отдельно оформлены правила для user story, research-фазы, REST API-спецификации и Confluence use case. Это оказалось важным, потому что AI существенно лучше работает, когда ему задан не только контекст задачи, но и точный формат результата.

  • Для user story были определены правила формулировки пользовательской цели, результата и критериев приемки. Отдельно было зафиксировано, что одна story должна описывать одну пользовательскую цель, а критерии приемки должны быть проверяемыми.

  • Для API-спецификации были определены правила описания сценария, endpoint, параметров, тела запроса, успешных ответов, типовых ошибок и PlantUML-диаграммы. Отдельно было зафиксировано, что агент не должен придумывать поля или коды ошибок, если они отсутствуют в источнике.

  • Для Confluence UC были заданы более строгие правила, так как это уже не просто текстовый документ, а страница с конкретной структурой и макросами. В неё должны входить разделы основной информации, истории изменений, предусловия, сценарии использования и схемы работы. HTTP-детали должны оформляться во вкладках, запросы и ответы — в code-блоках, бизнес-правила — в info-блоках, а диаграмма — в PlantUML.

Основной вывод из этого кейса: AI может ускорить подготовку артефактов, если для него заранее определены правила качества. Без style guide результат будет зависеть от интерпретации модели. Со style guide результат становится более повторяемым и пригодным для командной работы 

Кейс №3: Публикация UC в Confluence (или почему здесь начался ад)

Наиболее сложным и показательным стал кейс подготовки и публикации use case в Confluence.

На первый взгляд задача простая: сформировать страницу в формате команды и опубликовать её.  Страница должна была содержать оглавление, историю изменений, вкладки, code- и info-блоки, PlantUML. Обычного Markdown здесь недостаточно.

Но нельзя просто взять HTML-выгрузку существующей страницы и отправить её обратно как body.storage. Когда так делали, мы получали некорректную страницу, битые изображения и ссылки на attachments исходного документа (а ещё море слёз).

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

1. Проблема авторизации. В Figma был PAT, и агент работал сам по себе. В нашем корпоративном Confluence отдельного технического токена не было. В итоге агент работал от лица пользователя, используя куки активной вкладки браузера (credentials: 'same-origin'). То есть, если вы не залогинены в Confluence, агент видит страницу входа.

2. Проблема формата (Storage XML). Нельзя просто взять HTML-выгрузку страницы и отправить её как body storage. Confluence это съест, но картинка сломается, а ссылки превратятся в мусор. Нам пришлось писать Python-скрипт, который генерировал чистую Confluence storage-разметку.

3. Проблема версий. Confluence требует актуальный номер версии (version.number + 1 при PUT-запросе). Если кто-то зашёл и поправил страницу пока ИИ думал — конфликт обеспечен. Приходилось перед публикацией запрашивать status=current с отключением кэша.

4. Боль с кодировкой. Классическая засада. Передавали storage через base64, использовали стандартный atob(b64) для декодирования — и вся кириллица превратилась в кракозябры. Пришлось переписывать на new TextDecoder('utf-8').decode(raw).

5. Ограничения CDP. Confluence storage весит десятки килобайт, а если добавить картинки — мегабайты. Прогонять такие объёмы данных через последовательные вызовы Runtime.evaluate (Chrome DevTools Protocol) оказалось нестабильным — связь рвалась.

В итоге мы пришли к такому пайплайну: Python-генератор → Storage XML → Локальная валидация → Локальный CORS-сервер → Browser REST (с куки) → TextDecoder → Выполнение сниппета в DevTools.

Как раз тогда и появилась идея фиксировать все проблемы и итоговые рабочие решения в отдельный документ в confluence-generation-retrospective.md. Это позволило агенту не зацикливаться на одних и тех же предложенных вариантах решения, а полноценно и автономно решать вопросы по уже зафиксированным рабочим решениям.

Пример собранной документации Cursor в Confluence
Пример собранной документации Cursor в Confluence

Кейс №4: Работа с Figma

Отдельным направлением исследования стала работа с Figma, так как макеты пользовательских сценариев хранятся именно там.

Для доступа к Figma был настроен Personal Access Token. Токен был сохранен в переменную окружения FIGMA_TOKEN, после чего агент мог обращаться к Figma API через заголовок X-Figma-Token.

Проверка подключения выполнялась через endpoint /v1/me. После подтверждения токена агент мог получать данные о файле, читать структуру нод и экспортировать отдельные экраны в PNG.

Пример проверки:

curl -s -H “X-Figma-Token: $FIGMA_TOKEN” https://api.figma.com/v1/me | python3 -m json.tool

Для работы с конкретными экранами использовались file key и node id. При этом была зафиксирована важная техническая особенность: node id из ссылки Figma может отображаться через дефис, но в API передаётся через двоеточие. Например, 4888-28266 в URL передается как 4888:28266 в API-запросе.

В результате агент смог получать макеты, экспортировать экраны в PNG, читать изображения с диска и использовать их для описания сценариев.

Отдельно было выявлено, что работа токена в обычном терминале не гарантирует работу агента в Cursor. Для доступа агента к api.figma.com может потребоваться разрешение сетевого доступа в sandbox-настройках.

Промежуточный вывод

После первых кейсов стало понятно: я постепенно перешла от разовых экспериментов с AI к оформленному рабочему подходу.

Агент уже не был отдельным чатиком, которому я каждый раз заново объясняю задачу. У него появились правила, область ответственности, рабочие файлы, критерии остановки research-фазы и понятный формат результата. Но вместе с этим появился новый риск.

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

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

А этого было недостаточно.

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

Бонусная глава, где я экспериментирую на чужой документации

Все эксперименты я проводила на собственной работе, в знакомой предметной области и на документации, формат которой хорошо знала. Задачи, которые раньше оценивались примерно в пять story points, теперь укладывались в один-два с учётом проверки. И к этому моменту оставался один вопрос: «Действительно ли у меня получилось построить воспроизводимый процесс или я просто научила агента работать «как я»?»

Чтобы подтвердить или опровергнуть свою догадку, я предложила коллеге из другого отдела провести эксперимент на другой документации. Мы взяли реальную задачу по актуализации middle-документации сервиса. Она звучала так: «Разработчик уже добавил новую функциональность, OpenAPI и тесты. Базовый каркас документации существовал, но полноценного раздела по новой функциональности ещё не было»

При ручной работе сначала потребовалось бы изучить существующую документацию, затем собрать детали реализации у разработчика, написать и полдня отшлифовать описание и отдельно дождаться сниппетов.

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

  • Что изменилось?

  • Что действительно реализовано?

  • Что из этого нужно переносить в документацию?

В качестве источника истины он использовал код, OpenAPI и уже существующую документацию из Confluence для получения полного контекста. Согласно правилам все подтверждённые факты фиксировались в findings.md, а неясности в open-questions.md.

Research-фаза выявила методы, которые уже появились в коде, но отсутствовали в документации, а также расхождения между контрактом и фактической реализацией. Эти расхождения не скрывались, а фиксировались через NOTE.

После исследования началась документационная фаза. Для AsciiDoc подготовили отдельный style guide на основе существующих раздело в репозитория. Агент сформировал вводный раздел, общую sequence-диаграмму, сценарии работы методов, таблицы параметров и сниппеты (которые уже были описаны разработчиком, перенесли).

Параллельно мы сравнивали результат с другой документационной веткой, но не использовали её как безусловный источник истины.

Также мы четко разграничили правилами:

  • Если в документации был метод, которого нет в нашем API, мы его не переносили.

  • Если описание обещало больше, чем делал код, фиксировали расхождение.

Получился двухфазный процесс: исследование изменений с минимальной неопределенностью → перенос подтвержденных фактов в техническую документацию.

Полное описание со сниппетами заняло примерно полдня. Часть времени при этом ушла на первую настройку среды и плагина (не все плагины так легко настраиваются или просто мне с IDEA не везет).

Но главное — эксперимент шёл параллельно с ручной работой другого аналитика над той же задачей.

После завершения мы сравнили результаты. Существенных расхождений в сценариях и технических фактах не оказалось, различались в основном формулировки.

Например, ручное описание начиналось примерно так:

> В сервисе реализованы эндпоинты для управления пакетами поставок. Пакеты используются для группировки изменений сущностей с целью последующего выполнения действий: отправки на ревью, развертывания и других операций.

Агент сформулировал вводный текст немного иначе:

> В сервисе реализованы эндпоинты для админки по работе с поставками. Поставки используются для группировки изменений сущностей перед согласованием и последующей выкаткой. Доступ к данным эндпоинтам извне ограничивается шлюзом доступа.

Смысл в обоих вариантах совпадал: речь шла о новой функциональности для группировки изменений и управления их жизненным циклом. Но агент, следуя style guide, сделал вводный текст более структурным: сначала указал, для кого предназначено API, затем объяснил назначение поставок, а отдельно вынес ограничение доступа.

При этом детали реализации не попадали в intro. Они оставались в описании конкретных методов, чтобы вводный раздел не превращался в техническую свалку.

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

Но есть неприятный нюанс, который нужно учитывать при работе с агентом: результат нужно уметь проверить

Здесь легко сделать неправильный вывод. Раз агент смог работать с технической документацией, значит аналитик может заходить на территорию разработки и самому покрывать код тестами вместо разработчика.

Нет.

Результат получился качественным потому, что его можно было проверить.
В аналитической части я понимала структуру сценариев, правила описания контрактов и могла заметить, когда агент начинает додумывать.

В эксперименте с middle-документацией источником истины были код, OpenAPI и тесты. Результат дополнительно сравнивался с работой другого аналитика.

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

И вот здесь и появляется риск локальной оптимизации.

Аналитик может сэкономить два часа на генерации сниппетов, а разработчик затем потратить четыре на review, конфликты и исправление неработающего кода.

Это не оптимизация, а перенос работы на следующего участника процесса.

Поэтому нужно добавить ещё одно правило: не оценивайте качество AI-результата там, где у вас нет экспертизы его проверить.

Хороший промт не превращает аналитика в разработчика. AI ускоряет существующую экспертизу, но не создаёт её автоматически.

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

Что изменилось в процессе команды

В конце квартала мы вынесли результаты на общую встречу и сравнили артефакты, подготовленные вручную и с участием агента.

Стало понятно, что основной эффект — не только в экономии времени аналитика.

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

После эксперимента мы решили сосредоточиться на одном полноценном артефакте и процессе:

  • Аналитик формирует подтверждённый контекст.

  • Агент разработчика использует спецификацию как вход для реализации.

  • Тестировщик на основе спецификации подготавливает тест-кейсы.

Мы не убрали документацию из Confluence полностью, а убрали повторный перенос и интерпретацию одного и того же контекста.

Заключение

В марте я начинала с простого вопроса: «Зачем мне агент, если сама я сделаю быстрее?»

Первые эксперименты давали однозначный ответ: не нужен.

Задача «на день» растягивалась на три-четыре. Агент требовал постоянного контроля, придумывал данные и возвращал собственные решения в финальный документ как мои, а после запрета на додумывание начинал бесконечно задавать вопросы.

Постепенно стало понятно: мы давали агенту задачу, но не давали процесс. В итоге полезным оказался не «идеальный промт», а система ограничений: research → open questions → findings → domain-spec → API → документация.

А также:

  • Отдельные style guide.

  • Явные источники истины.

  • Контроль неопределённости.

  • Чёткие границы ответственности.

И к концу исследования вопрос изменился на «Можно ли один раз подготовить качественную спецификацию и перестать пересобирать один и тот же контекст отдельно для аналитика, разработчика и тестировщика?»

В нашем случае — да.

При этом мой главный вывод за квартал остаётся довольно жёстким — ИИ эффективен в аналитике только тогда, когда заперт в управляемый процесс. Без процесса он ускоряет не только создание документации, но и распространение ошибок. А с процессом, style guide, контролем неопределённости и ручной проверкой он становится полезным ассистентом.

AI ускоряет, он не заменяет вашу экспертизу. Если вы не способны проверить результат, вы не контролируете агента. Вы просто надеетесь, что он угадал. А на требованиях, API, коде и архитектурных решениях я бы на удачу пока не рассчитывала

Чтобы статья не осталась только рассказом о моем опыте, я собрала отдельную папку с материалами эксперимента.

[Ссылка на материалы здесь]

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