tstack — 9 агентных навыков для работы с пул-реквестами в Claude Code и Codex
📂 Исходный код на GitHubНабор agent skills от Theo (t3dotgg) для Claude Code и Codex: доведение изменений до мержа, ревью тремя моделями разных провайдеров, сопровождение PR через CI и подхват чужих веток.
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