Коротко
Expo показывает, как связать GitHub issue, Claude Code и облачный симулятор, чтобы агент сам воспроизвёл сбой, предложил исправление и подтвердил его работу. В примере PR включает записи сессий до и после исправления и отчёт о прохождении 22 тестов Settings.
Контекст
Статья основана на публикации блога Expo и описывает практический пример для разработчиков Expo/React Native. Задача — уменьшить ручную работу по разбору неполных сообщений об ошибках, используя EAS Workflows для запуска агента и EAS Simulator для проверки приложения на устройстве в облаке.
Главное
- Метка
reproв GitHub issue запускает автоматический процесс исследования ошибки. - В цепочке участвуют GitHub Action, EAS Workflows, Claude Code и EAS Simulator.
agent-deviceот Callstack позволяет агенту управлять интерфейсом, делать скриншоты и записывать сессии.- В примере выяснилось, что Settings падал сразу при открытии, а не при прокрутке, как предполагал пользователь.
- После исправления агент проверяет приложение в новой сессии симулятора и повторяет нужные действия.
- PR содержит причину ошибки, кодовое изменение, скриншоты и ссылки на записи до и после исправления.
- В примере прошли все 22 теста Settings, а также lint и typecheck.
- Если воспроизведение или проверка не удаются, агент должен сообщить об этом и остановиться, не выдавая неподтверждённый PR.
- Слияние должно оставаться за человеком; автор рекомендует подкрепить это настройками доступа и защитой веток.
- EAS Simulator находится в раннем доступе, а настройка требует профиля сборки, контекста приложения и учётных данных.
Как сделано
Добавление метки repro к GitHub issue запускает GitHub Action, которая передаёт номер issue в EAS Workflows. Workflow получает репозиторий, устанавливает зависимости и запускает Claude Code с инструкциями по исследованию ошибки.
Агент устанавливает приложение в EAS Simulator и использует agent-device — CLI Callstack для автоматизации устройства: открывает экраны, взаимодействует с интерфейсом и записывает сессию. После обнаружения причины агент вносит изменение, пересобирает приложение и проверяет его в новой сессии теми же шагами.
В PR агент прикладывает описание причины, изменение кода, скриншоты до и после, ссылки на обе записи сессий и результаты проверок. Если сбой не удаётся воспроизвести или исправление не проходит проверку, инструкции требуют сообщить об этом и не открывать PR. Для невизуальных дефектов следует приложить логи или регрессионные тесты. Слияние оставляют человеку; это дополнительно обеспечивают правами репозитория и защитой веток.
Результаты
В демонстрационном примере агент уточнил, что приложение падало при открытии Settings, ещё до прокрутки, хотя в issue говорилось о падении при прокрутке вниз. После исправления приложение прошло повторную проверку в симуляторе; PR сообщил об успешном прохождении всех 22 тестов Settings, lint и typecheck. К PR приложены записи двух симуляторных сессий и скриншоты до и после. Просматривать доказательства можно в браузере на macOS, Windows или Linux.
Ограничения
EAS Simulator находится в раннем доступе, доступ предоставляется через лист ожидания, возможны шероховатости. Успех зависит от качества инструкций агенту и понимания им приложения. Схема рассчитана на сбои, которые можно надёжно воспроизвести и проверить на устройстве, и не заменяет разбор неоднозначных или непостоянных ошибок. Публикация не приводит оценки стоимости, времени выполнения или доли успешных исправлений. Для собственного репозитория нужны профиль сборки, контекст навигации и учётные данные Expo, GitHub и используемого агента.
Что взять себе
- Начните с автоматического воспроизведения одной надёжно повторяемой ошибки; добавляйте автоматическое исправление после того, как научитесь оценивать доказательства агента.
- Задайте проверяемые критерии результата и требуйте записи сессий, скриншоты, логи или регрессионные тесты.
- Не полагайтесь только на инструкции в промпте: ограничьте права агента и оставьте решение о слиянии человеку.
- Не ожидайте, что этот процесс устранит необходимость ручной сортировки неоднозначных или непостоянных сбоев.
Читать оригинал, если…
Откройте исходную публикацию, если хотите посмотреть пример репозитория, issue #9 и PR #10, а также изучить точную конфигурацию workflow и инструкции агенту.