tstack — 9 агентных навыков для работы с пул-реквестами в Claude Code и Codex

· 5 мин чтения
claude-code skills ai-agents codex code-review
📂 Исходный код на GitHub

Набор agent skills от Theo (t3dotgg) для Claude Code и Codex: доведение изменений до мержа, ревью тремя моделями разных провайдеров, сопровождение PR через CI и подхват чужих веток.

tstack — 9 агентных навыков для работы с пул-реквестами в Claude Code и Codex

tstack — открытый набор из девяти навыков (agent skills) для Claude Code и Codex от разработчика Theo (t3dotgg). Автор пользуется ими каждый день, а в репозиторий выложил вычищенные версии, чтобы ими мог воспользоваться любой. Проект распространяется по лицензии MIT и на момент написания собрал около 2,7 тысячи звёзд на GitHub.

Весь набор закрывает один сценарий: что происходит с изменением после того, как код написан. Ревью, оформление пул-реквеста, наблюдение за CI, реакция на замечания ботов и, наконец, мерж. Это та часть работы, где агент обычно останавливается, а у tstack именно она и автоматизирована.

Что внутри

Навык в Claude Code и Codex — это папка с файлом инструкций, который агент подгружает, когда ваша задача совпадает с описанием. Вы не настраиваете отдельное приложение и не пишете обвязку: скопировали папку в каталог навыков — и агент умеет делать то, чего не умел.

Каждый навык в tstack лежит в отдельной папке внутри каталога skills/. Часть навыков использует возможности T3 Code, когда они доступны, и откатывается к встроенным инструментам, когда их нет. Поэтому набор работает и в чистом Claude Code, и в Codex.

Навык Как вызвать Что делает
full-send «full send» Превращает изменение в смерженный пул-реквест без человека в цикле: доказывает работоспособность, устраивает ревью, оформляет PR, сопровождает его и мержит.
full-stop «full stop» То же самое, что full-send, но останавливается, когда PR готов к мержу, и оставляет финальное решение за вами.
council «council» Собирает ревью от трёх моделей разных провайдеров и повторяет цикл, пока они не придут к согласию.
sol-loop «sol loop» Ревьюит изменение вместе с GPT Sol в цикле, пока оба агента не согласятся друг с другом.
file-pr «file a PR» Оформляет короткий пул-реквест, который начинается с проблемы, а не с перечня правок.
takeover «take over» Дорабатывает чужой PR, ветку или тред агента до конца и сохраняет авторство первоначального автора.
babysit-pr «babysit» Следит за PR, пока его проверяют CI и боты-ревьюеры, и исправляет настоящие замечания, отсеивая шум.
modernize «modernize» Перебазирует старый пул-реквест и решает, имеет ли он ещё смысл.
leaving-pr-comments срабатывает автоматически Приводит к единому виду комментарии, которые агент оставляет от вашего имени.

Как навыки связаны между собой

Навыки не изолированы: часть из них вызывает другие. Устанавливать нужно не только тот навык, который вы запускаете, но и его зависимости.

  • full-send использует sol-loop, file-pr и babysit-pr.
  • full-stop использует full-send.
  • takeover использует modernize, file-pr, babysit-pr и leaving-pr-comments.
  • file-pr, babysit-pr и modernize используют leaving-pr-comments.

Здесь виден общий приём: вместо одного огромного навыка автор собрал конвейер из маленьких. full-send — это оркестратор, который запускает ревью-цикл, оформление и сопровождение как отдельные шаги. Такой навык проще читать, править и использовать по отдельности.

Ревью-циклы: council и sol-loop

Ревью — ядро набора, и оно построено на одной идее: агент, который проверяет сам себя, соглашается с самим собой. Один ревьюер-агент склонен пропускать собственные ошибки и хвалить собственные решения. Поэтому в tstack проверка изменения устроена как переговоры между независимыми участниками.

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

sol-loop — версия той же схемы для двух участников: агент, который сделал изменение, и GPT Sol, который его ревьюит. Цикл продолжается, пока оба не согласятся. Такой формат дешевле и быстрее, чем полный «совет» из трёх моделей, но построен на том же принципе — спор вместо самооценки.

Установка

Навыки устанавливаются простым копированием файлов в каталог навыков нужного агента:

git clone https://github.com/t3dotgg/tstack
cp -R tstack/skills/* ~/.claude/skills/   # Claude Code
cp -R tstack/skills/* ~/.codex/skills/    # Codex

Что потребуется

Для работы навыков нужен минимальный набор инструментов:

  • Авторизованный GitHub CLI (gh) — почти все навыки работают с пул-реквестами через него.
  • python3 — нужен для скрипта pr-wait внутри babysit-pr, который следит за прохождением проверок.
  • Для council и sol-loop — субагенты на моделях других провайдеров. T3 Code решает это через механизм delegate_task. Если вы работаете без него, потребуется обвязка (harness), которая умеет запускать модели сторонних провайдеров.

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

Как адаптировать под себя

Автор прямо говорит: это отправная точка, а не готовый продукт. Навыки рассчитаны на то, что вы будете их править.

Личные настройки — например, какие именно модели сидят в вашем «совете» (council) — лучше вынести в CLAUDE.md или AGENTS.md. Тогда каталог навыков можно обновлять из репозитория, не теряя собственных конфигураций. Это простой, но полезный шаблон: поведение — в навыках, персональные параметры — в файлах проекта.

Зачем это нужно

Разрыв между «агент написал код» и «изменение попало в основную ветку» до сих пор остаётся ручной работой. Человек оформляет PR, читает замечания ботов, ждёт зелёный CI и жмёт мерж. tstack отдаёт всю эту цепочку агенту, оставляя человеку точку контроля: full-stop останавливается перед мержем, takeover сохраняет авторство коллеги, leaving-pr-comments следит за тем, как агент пишет от вашего имени.

В наборе полезно и то, как разложены роли. Оформление PR, сопровождение проверок и ревью не свалены в один монолитный навык — они отдельные шаги, которые можно запускать поодиночке. Если полный автоматический мерж пока пугает, можно начать с малого: ставить file-pr для описаний, babysit-pr для наблюдения за CI и council для спорных изменений. Остальное добавите, когда привыкнете доверять конвейеру.

Отдельно стоит отметить навык file-pr. Он фиксирует простое правило хорошего пул-реквеста: описание начинается с проблемы, а не со списка правок. Такой PR легче ревьюить, потому что ревьюер сначала понимает, зачем изменение нужно, и только потом смотрит, что именно поменяли.

Если вы уже пользуетесь Claude Code или Codex и хотите передать агенту не только написание кода, но и весь путь до мержа, tstack — готовый набор с понятной структурой и минимальными требованиями.

Источник: https://github.com/t3dotgg/tstack