Theo Browne open-sourced tstack: 9 Claude Code and Codex skills like full-send, council, and babysit-pr that file, review, and merge PRs on their own.
Vamsi Tallapudi
Manager, Architect Technology at Cognizant
Theo Browne, the developer behind the T3 Stack and T3 Chat, just open-sourced the actual files he uses to let AI agents file, review, and merge his pull requests without him watching. The repo is called tstack, it's MIT licensed, and it ships nine Claude Code and Codex skills: full-send, full-stop, council, sol-loop, file-pr, babysit-pr, takeover, modernize, and leaving-pr-comments.
He didn't build a product. He published markdown. And that's kind of the point.
tstack is a folder of SKILL.md files that you drop into ~/.claude/skills/ or ~/.codex/skills/. Each one is a written-down procedure for something Theo trusts an agent to do repeatedly: finish a change, get a second opinion, open a PR, babysit CI, and merge when it's clean.
There's no new framework, no SDK, no dashboard. It's closer to a cookbook than a tool. The repo describes itself as "the agent skills I use every day," and the install instructions are two lines:
git clone https://github.com/t3dotgg/tstack
cp -R tstack/skills/* ~/.claude/skills/
You need an authenticated gh CLI and python3 on your machine, since babysit-pr uses a Python script (pr-wait) to poll PR status instead of making the agent guess when checks are done.
He announced it on X with a post that read, almost sheepishly, "So uh...I guess it's time to announce tstack? I caved. I am publishing my skills now." For a while he'd talked about these workflows on his channel without sharing the files themselves.
The push to publish came after he started quoting his own usage numbers in public, pulled from a ClickHouse database where his own LLM proxy logs every request his agents make. Out of 32 recent times he told an agent to full-send a change, 27 pull requests merged without him ever reopening the thread again, and none of those 27 caused a problem.
That's the pitch in one stat. Not "AI can write code," which everyone's tired of hearing, but "AI can run an entire PR lifecycle end to end often enough that watching it stopped being worth my time."
Here's the full list, grouped by what they actually do:
The autopilot pair
sol-loop for review, files it with file-pr, babysits CI with babysit-pr, and merges once the gate is green.The review layer
The PR mechanics
pr-wait script, and fixes the findings that are actually real instead of chasing every nitpick.This is the part people get nervous about, and fairly so. The full-send SKILL.md grants explicit permissions up front: merge once the gate passes, force-push with --force-with-lease after rebasing, run whatever tests "Proof" needs without asking first, even overriding ask-first rules sitting in the project's own config files.
It also sets a hard rule for the agent: stay active across all seven steps, because "if you end your turn while checks or bots are pending, the work stops." The merge gate itself has teeth too. It only fires when required checks are green, every review finding is addressed, the branch is current with the default, and no outstanding human change-request remains.
So it's not a blind YOLO button. It's a scoped grant of authority, written down once, instead of re-negotiated in every chat. That's honestly the more interesting idea here than the automation itself. Most people re-explain their risk tolerance to an agent every single session. Theo wrote his down once and reuses it.
| full-send | full-stop | |
|---|---|---|
| Finishes the change | Yes | Yes |
| Runs sol-loop review | Yes | Yes |
| Files the PR | Yes | Yes |
| Babysits CI | Yes | Yes |
| Merges automatically | Yes | No, waits for you |
| Good for | low-stakes fixes, chores, your own side projects | anything touching production, shared repos, stuff you want eyes on |
I'd start with full-stop on anything you don't fully trust yet and graduate to full-send once you've watched it get a handful of PRs right. That's basically what Theo's own 27-out-of-32 number suggests he did too, since a few of those 32 still needed him to step back in.
Kind of, yeah, and that's fine. council is built for changes where getting it wrong is expensive, not for a typo fix. Running three flagship models through multiple review rounds burns real tokens and real time. For routine work, sol-loop's single-reviewer loop is the better default. Save council for migrations, auth changes, anything where a second opinion from one model might miss the same blind spot a third model would catch.
gh is authenticated (gh auth status) and python3 is installed.git clone https://github.com/t3dotgg/tstackcp -R tstack/skills/* ~/.claude/skills/~/.codex/skills/ the same way.full-stop first on a throwaway branch before trusting anything with full-send.Theo's own note in the repo is worth repeating: these are starting points, not finished products. He expects people to edit them and keep personal tweaks in a separate file so updates don't overwrite your changes.
Fast, and visibly. Within a day or two, forks and mirrors showed up, including drrius/tstack and simon-johansson/tstack, and skill-registry projects started vendoring the whole set instead of individual files.
One clean example: PR #220 on shunkakinoki/dotagents added all nine tstack skills as an "install-all" entry in that project's shared skill registry, updating SKILLS.txt and skills-lock.json, with the PR description noting "no name collisions with existing skills." It merged on October 26, 2026. That's a small thing, but it's a sign tstack is already being treated as plumbing other skill collections build on top of, not just a one-off release.
With a caveat: it's told to fix "the real findings," which assumes the agent can tell real findings apart from noise. In practice that means lint errors and genuine test failures get fixed, while a bot complaining about naming conventions might get pushed back on or just ignored, depending on how the agent judges it. If you've used Claude Code's built-in review feature and found it reasonable at triaging its own findings, this isn't a huge leap. It's the same judgment call, just extended all the way to the merge step.
If you're already running agents semi-autonomously and manually re-explaining the same PR workflow every session, yes, obviously. Write it down once, stop repeating yourself. If you've never let an agent touch CI or a merge button, start with full-stop and sol-loop and work up from there.
Don't jump straight to full-send on a repo you care about just because Theo's numbers looked good. His 27-out-of-32 track record, pulled from his own proxy logs, is his risk tolerance on his own repos. It isn't a guarantee for yours.
The bigger idea tstack is selling, more than any individual skill, is that the unit of agent customization worth sharing isn't a prompt or a tool. It's a written-down process with explicit permissions attached. That's worth stealing even if you never copy a single file from his repo.
For more on where autonomous PR workflows and agent skills are heading, see our pieces on Claude Code's review feature, proactive agents in Claude Duet, and skill and MCP comparisons.
New AI tools, automation workflows, and course drops — straight to your inbox. Join 2,400+ builders.
Sebastian Raschka's free 11-hour video course builds a reasoning model from scratch in Python and PyTorch, covering GRPO RL, inference scaling, and distillation.
GPT-6.1 Terra launched Oct 26, 2026 at $1/$5 per million tokens, scoring 50.3% on Terminal-Bench 4.0. Here's how it stacks up against Claude Sonnet 5.5 and Haiku 5.5.
git-ai is an open-source rebuild of Anthropic's Scion, built so AI coding agents can land changes on shared branches without queuing like humans do.
Comments