Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Kak my zakryli 1500 repozitornyh zadach na github za odin mesyats
Dev48

© 2026 · All rights reserved.

Как мы закрыли 1500 репозиторных задач на GitHub за один месяц

Источник: Next.js

Как мы закрыли 1500 репозиторных задач на GitHub за один месяц

Источник: Next.js

Как команда Next.js использовала агента для изучения старых отчетов и разбора накопившихся задач.

27 сентября 2026 г.•Обновлено: 27 сентября 2026 г.

Миллионы разработчиков используют Next.js, и трекер задач — один из основных способов для нас узнать, с какими проблемами они сталкиваются. Еженедельно в него поступает в среднем 36 новых отчетов.

Агенты для написания кода упростили создание подробных отчетов, что замечательно, но это также привело к значительному увеличению объема задач для проверки. Для каждой из них нам, возможно, придется воспроизвести ошибку, протестировать ее в разных версиях Next.js и изучить годы пул-реквестов и коммитов, прежде чем мы сможем решить, что делать с этим отчетом.

В январе 2025 года количество открытых отчетов достигло пика — 3109. К 10 августа 2026 года их оставалось 2244. Исправленные ошибки, дубликаты и отчеты о неподдерживаемых версиях скрывали актуальные регрессии. Мы хотели закрыть эти отчеты, не потеряв при этом старые задачи, которые все еще имели значение.

Примерно три недели спустя мы закрыли 1462 задачи в репозитории и сократили бэклог до уровня менее 1000, даже несмотря на поступление 218 новых отчетов. Сюда входят некоторые задачи, которые мейнтейнеры закрыли вне рамок этого процесса проверки. Вот история с 2017 года:

Открытые задачи в vercel/next.jsРабота началась 15 июня

С

Чтобы справиться с таким количеством задач, мы создали агента для исследования бэклога. Мейнтейнеры использовали его результаты, чтобы уверенно закрывать задачи. Продолжайте читать, чтобы узнать, как мы это сделали.

Автоматическое закрытие неактуальных задач

Мы уже пробовали использовать неактивность в качестве критерия. В январе 2025 года, когда бэклог достиг пика в 3109 задач, мы добавили workflow, который помечал задачу как неактуальную после двух лет без активности (позже 18 months) и закрывал ее после льготного периода. К 10 августа 2026 года это помогло сократить бэклог до 2244 задач.

Однако неактивность оказалась плохим показателем актуальности. Старая задача может быть уже исправлена, являться дубликатом, описывать ожидаемое поведение или относиться к тому, что мы больше не поддерживаем. Это также может быть реальная ошибка, которую никто не перепроверял. Временная метка не позволяет различить эти случаи, поэтому мы закрыли некоторые отчеты, которые следовало оставить. Чтобы принимать верные решения, требовалось исследовать весь бэклог.

Использование ИИ для проверки задач

Проверка задачи вручную означает чтение обсуждения и соответствующего кода, проверку того, были ли применены связанные исправления, и попытку воспроизведения ошибки на текущих релизах. Агенты для написания кода хорошо подходят для этой работы. Чтобы исследовать задачу, им нужна среда, где они могут запускать код. Для этого мы использовали eve, фреймворк агентов с открытым исходным кодом от Vercel. Он предоставляет постоянные сессии, запланированные запуски и структурированные выходные данные, а также может запускать код в изолированной инфраструктуре, такой как Vercel Sandbox.

На базе eve мы создали closability — исследовательского агента, который оценивает, можно ли закрыть задачу. Он проводит расследование в свежей «песочнице» с репозиторием Next.js, Node.js, Playwright и Chromium, где он:

  • Читает обсуждение в GitHub и проверяет поддерживаемые версии.
  • Ищет связанные задачи, пул-реквесты, коммиты, релизы и документацию.
  • При необходимости пытается воспроизвести ошибку на указанной версии, последнем стабильном релизе и версии canary.
  • Ищет доказательства, которые противоречат его первоначальному выводу.

Завершенное расследование возвращает структурированные данные. Вот пример:

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

Мы сделали агента доступным только для чтения вне его «песочницы». Он может исследовать задачу, но не может действовать на основе своих выводов: комментировать, закрывать задачу, отправлять код или что-либо развертывать. Чтобы защититься от инъекций промптов, мы также настроили его так, чтобы он игнорировал инструкции, которые находит в тексте задачи или содержимом репозитория.

Очистка бэклога

Мы запустили closability для всего бэклога на модели GPT-5.6 Luna с максимальным уровнем усилий при рассуждении. Расследования занимали в среднем 30 минут, поэтому мы постепенно увеличивали параллелизм, пока не стали одновременно запускать 200 сессий eve.

Агент помещал результаты в очередь на закрытие (Close Queue) для нашей проверки. Мы читали доказательства, лежащие в основе каждого результата, и продолжали работать с очередью в течение следующих недель. К 4 сентября в репозитории было закрыто 1462 задачи, включая некоторые, закрытые вне рамок этого процесса. Большинство проверок сводилось к чтению резюме и проверке источников, которые агент уже собрал.

Агент присваивал каждой закрытой задаче основную причину. Вот как были закрыты задачи:

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

бот github-actions прокомментировал

Эта задача была закрыта мейнтейнером. Если вы считаете, что она была закрыта по ошибке, вы можете запросить ее повторное открытие в течение следующих 14 дней.

Ответьте «Reopen: <причина>» и объясните, почему задача все еще актуальна. Если вы открыли эту задачу или оставили комментарий до того, как она была закрыта, задача будет открыта повторно автоматически.

Через 14 дней, пожалуйста, откройте новую задачу с актуальными деталями и, если применимо, с примером воспроизведения.

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

По состоянию на 4 сентября 2026 года

Эти цифры говорят о том, что большинство наших решений были верными.

Агент мейнтейнера

Агент closability — один из нескольких независимых агентов eve, которые составляют «Агента мейнтейнера». Другие агенты воспроизводят задачи, проверяют их на версии canary, выполняют бисекцию изменений, которые внесли или исправили их, создают сквозные тесты и подготавливают исправления.

Код организован в отдельную директорию для каждого агента:

Мы также подключили Агента мейнтейнера к панели управления Next.js. Она отображает задачи, тенденции бэклога и результаты исследований, а мейнтейнеры используют ее для проверки очереди на закрытие и запуска расследований вручную. Когда для расследования требуется несколько агентов, приложение решает, какой из них будет работать следующим, передает результаты и записывает произошедшее.

Панель управления включает чат-агента для вопросов по конкретной задаче или пул-реквесту. Из задачи мейнтейнеры могут попросить его изучить исходный код или начать расследование. Агент мейнтейнера отправляет важные находки и ежедневную сводку в Slack.

Поддержание полезности бэклога

Разовая очистка позволила избавиться от большей части старого бэклога, но новые задачи продолжают поступать. Поэтому каждый понедельник closability исследует до 100 открытых задач без активности в течение как минимум 30 дней, начиная с тех, которые он никогда не проверял. Если в задаче появляется новая активность, мы отбрасываем сохраненные результаты исследования.

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

  • Агент closability сначала проверяет задачу.
  • При оценке 80 баллов или выше второй агент ищет доказательства того, что задачу следует оставить открытой.
  • Если оба агента рекомендуют закрытие, второй агент выбирает причину закрытия и пишет комментарий. Отдельный GitHub Action публикует комментарий и закрывает задачу.

Мы начинаем с обработки до 25 issue в неделю. Пользователи по-прежнему могут открыть issue снова, если мы ошиблись с решением. Эта автоматизация только закрывает issue, и каждое изменение кода по-прежнему проходит проверку человеком перед мерджем в Next.js.

По мере роста Next.js и ускорения разработки открытого исходного кода с помощью ИИ у мейнтейнеров появляется всё больше issue и pull request для проверки. Мы планируем и дальше автоматизировать эту работу, чтобы справляться с объёмом, не упуская обратную связь и вклад сообщества.

Обратная связь и сообщество

  • GitHub Discussions
  • GitHub Issues
  • Сообщество Discord
← Все статьи

Ещё в разделе «Разработка ПО»

Все →
Обзор Sennheiser Momentum 5: великолепный звук, невероятное время автономной работы и минимум компромиссовПресса
Momentum

Обзор Sennheiser Momentum 5: великолепный звук, невероятное время автономной работы и минимум компромиссов

Boeing сообщает о программном сбое в 737 Max, затрагивающем некоторые функции автоматического захода на посадкуПресса
Boeing

Boeing сообщает о программном сбое в 737 Max, затрагивающем некоторые функции автоматического захода на посадку

Apple обязали выплатить 5,7 млрд долларов по иску о нарушении патентных прав на тактильные технологии в iPhone и Apple Watch
Пресса
Apple

Apple обязали выплатить 5,7 млрд долларов по иску о нарушении патентных прав на тактильные технологии в iPhone и Apple Watch

Компании выбирают САПР от PTC для разработки и проектирования продуктов
PTC

Компании выбирают САПР от PTC для разработки и проектирования продуктов

Clas Ohlson выбирает PTC FlexPLM для поддержки своей стратегии роста
PTC

Clas Ohlson выбирает PTC FlexPLM для поддержки своей стратегии роста

Canon ITS и PTC Japan запускают «Smart PLM Support Service» для поддержки трансформации рабочих процессов в сфере производства
PTC

Canon ITS и PTC Japan запускают «Smart PLM Support Service» для поддержки трансформации рабочих процессов в сфере производства

Ещё от Next.js

Предстоящий выпуск безопасности Next.js в сентябре
Next.js

Предстоящий выпуск безопасности Next.js в сентябре

Обновление безопасности Next.js в связи с критической уязвимостью в вышестоящей зависимости
Next.js

Обновление безопасности Next.js в связи с критической уязвимостью в вышестоящей зависимости

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

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

Как Turbopack разбивает ваш JavaScript на чанки
Next.js

Как Turbopack разбивает ваш JavaScript на чанки