babysit-pr
Навык babysit-pr предназначен для продолжительного наблюдения за открытым GitHub pull request после его создания. Он собирает состояние review-комментариев, CI checks, workflow runs и mergeability, а затем повторяет проверки, пока не наступит один из терминальных исходов: pull request будет merged или closed, либо понадобится помощь пользователя из-за инфраструктурной проблемы, исчерпанных повторов, прав доступа или неоднозначности, которую нельзя безопасно решить самостоятельно. Состояние green, mergeable и review-clean считается полезной вехой, но не причиной прекращать наблюдение, пока pull request остаётся открытым. На вход можно передать номер или URL pull request; если аргумент не указан, навык выводит цель из текущей ветки. Для разовой проверки используется snapshot, а для постоянного наблюдения — режим watch с потоковыми JSONL-событиями. Каждый цикл должен сначала прочитать actions, затем проверить свежие review items, состояние CI и mergeability. Если watcher сообщает о diagnose_ci_failure, нужно открыть журналы неудачного запуска и определить, относится ли причина к изменённой ветке. Если конкретная job уже завершилась ошибкой, её журнал можно получить до завершения всего workflow; это ускоряет отделение ошибки кода от общей задержки запуска. Сбои классифицируются по причине. Ошибки компиляции, тестов, lint, typecheck, snapshot или статического анализа в затронутом коде считаются связанными с веткой и могут потребовать локального исправления, commit и push. Таймауты runner, проблемы provisioning, недоступность registry, сетевые сбои GitHub и другие внешние проблемы относятся к flaky или инфраструктурным; их нельзя маскировать изменением тестов, CI-конфигурации или зависимостей. Повтор failed checks допускается только когда watcher явно рекомендует retry_failed_checks. Для вероятно flaky ошибок бюджет ограничен тремя циклами, после чего нужен пользователь или остановка по установленному условию. Навык также обрабатывает опубликованные review items из issue comments, inline comments и review submissions. Pending reviews и pending inline comments не считаются опубликованной обратной связью. Если комментарий корректен и требует изменения, можно внести узкий патч, создать commit с понятным сообщением, push и продолжить watch на новом SHA. Ответы на человеческие комментарии нельзя публиковать автоматически без явного подтверждения пользователя. Разрешение review thread зависит от автора и состояния; с чужими человеческими участниками нельзя менять GitHub-состояние без соответствующего разрешения. Собственные и разрешённые bot-комментарии обрабатываются по отдельным правилам. Границы безопасности сформулированы явно. Нельзя переключаться на другую ветку без необходимости, использовать destructive git commands или оставлять detached watcher, а после push нужно немедленно возобновить наблюдение. Idle-снимок не означает завершение, если проверки ещё pending. Если проблема требует полномочий, связана с инфраструктурой, исчерпала retry-бюджет или не имеет безопасной интерпретации, навык должен остановиться и сообщить о необходимости помощи. Поэтому babysit-pr подходит для контролируемого сопровождения CI и ревью уже открытого PR, но не является разрешением автоматически отвечать людям, закрывать PR, менять его draft-статус или вмешиваться в не связанные с веткой сбои.
Для чего подходит
- Мониторинг открытого pull request
- Проверка CI и mergeability
- Отслеживание новых замечаний ревью
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/openai/codex/tree/main/.codex/skills/babysit-pr