Loading...

PR skill pack · tstack

Open a PR, say 'council,' and your agent keeps fixing it until three AIs from different companies are happy

Open a PR in Claude Code or Codex, then call 'council.' Three AIs from different companies read the code without changing it and score it out of 10. Your own agent fixes what they flag and goes back for another review, and each round's scores end up as a table in the PR description. council is part of tstack, a set of PR skills Theo released. We collected PRs that other developers ran through it in their own repos and merged within two days of its release. The PRs don't mention tstack by name, but you can spot it by the format of the score table they leave behind.

Oct 26, 2026·3 cases

T3 Code screen. Under the request 'Consult council to make sure this is safe. Merge it once they're happy.', three lines are running: 'Council: PR #31 safety (Opus) / (Muse) / (Sol) Running'. The agent replies that it will merge only once all three say it is safe.
The screenshot Theo attached to the X post that first announced council. Source: Theo Browne, X

On October 23, Theo Browne, a developer YouTuber with 570,000 subscribers and CEO of the company behind T3 Code and T3 Chat, posted on X: "I wrote a \"council\" skill that makes my agent argue with Opus 5.5, Muse Wonder Full and GPT-6.1 Sol before it is allowed to merge". By October 26 the post had 180,000 views and 1,714 bookmarks. Replies included "Give me the council skill please" and "Have you released this council skill publicly?"

The next day, Theo released the skills Theo uses every day as a repo called tstack. The repo went from 38 stars on October 25 to 103 on October 26. Within two days of the release, other developers had run council in their own repos and merged the resulting PRs.

tstack contains nine PR skills. Besides council, there is babysit, which watches a PR through CI and review bots and fixes only the real issues; full stop, which stops once the PR is ready for a human to merge; and full send, which drives the PR all the way to merge with no one watching. The skills call one another. They run in Claude Code and Codex.

council seats three AIs from different companies as members. The members only read the code and score it out of 10. Your agent does the fixing and keeps going back for review until all three are satisfied. The agent also keeps the PR from growing as the reviews pile up, and each round's scores are recorded as a table in the PR description.

Reference 01Nikita Maximilian Grimm, who builds vault-mirror, a backup tool for Bitwarden vaults · GitHub

A backup tool's error messages now tell you what to check and which option to pass

The PR never names tstack, but the score table it leaves matches the format added to tstack council on October 25. The PR changes the guidance shown in the terminal when something fails during setup or recovery. Here is how the error for a missing backup folder changed.

Before: error: opening backups/run.lock for recovery; copy BACKUPS_DIR to a writable directory or retain run.lock when copying backups: No such file or directory (os error 2)
After: error: no backup directory at backups; check BACKUPS_DIR or pass --env-file vault-mirror.env: No such file or directory (os error 2)

Now the error says the backup folder is missing and points straight to the setting to check (BACKUPS_DIR) and the option to pass (--env-file). Warnings and errors now print separately, and the help text wraps at word boundaries.

The council started with Claude Opus 5.5 and GPT 6.1 Sol, and GPT 6 Astra joined from round 4. That made two GPT seats, unlike the default of three models from different companies. Opus's score went 8 → 9.5 → 10, then dropped to 8.5 in round 5. That was when Nikita widened the review to cover the quality of the terminal output and the docs. In round 7, all three members gave 10 on every item.

The loop finished in about 59 minutes, well under the 150-minute limit that had been set. The members only read the code. The lead agent checked their findings and made the fixes. In all, 256 tests actually ran, and the PR passed 23 CI checks before it was merged on October 26.

Before-and-after terminal output. Top, 'BEFORE Hard wrapping; no corrective action': the notification-failure warning is cut off at the end of the line. Bottom, 'AFTER Clear continuation and next action': the output is tidy and continues through 'Check NOTIFY_SUCCESS_URL and the notification service.'
The notification-failure warning. It used to be cut off at the end of the line. Now it ends with the next step: 'Check NOTIFY_SUCCESS_URL and the notification service.' The images in the PR are redrawn from the terminal output.
Before-and-after help screen. In 'Safety explanations split at the edge', option descriptions break in the middle of words. In 'Whole words and aligned continuations', lines wrap at whole words and continuation lines line up.
Option descriptions in the help text. Lines that used to break mid-word now wrap at whole words, and continuation lines are aligned.

Reference 02Uzair Ansar, who builds hermex, an iPhone app for the Hermes agent · GitHub

An update froze an iPhone app's chat. The agent fixed it after five review rounds with AIs from three companies

hermex is an iPhone app for talking to a Hermes agent. After hermes-agent on the host moved to 0.22.3, any time the host replaced a Bot Chat with a new one, the app's chat got stuck on "The conversation identity changed. Check this bot in Desktop." With this PR, the app follows the new Bot Chat and shows a notice that it changed.

The council was Claude Opus 5.5, GPT-6.1 Sol and Gemini 4 Argon, so models from all three companies had a seat. Over five rounds, Opus went 8 → 9, GPT Sol 6 → 8 and Gemini 6.5 → 10.

Verification went beyond the scores. All 234 specified tests passed, and all 2,489 keys in the string catalog were checked. A build for iPhone 17 was connected to a real Hermes host to confirm that paths that already worked still did. The PR passed 6 CI checks and was merged on October 26.

Reference 03Official demo · a PR that tstack creator Theo Browne opened on T3 Code, a product from Theo's own company

Theo asked three AIs what to cut before writing any code, and opening a thread now loads 85% less data

On a PR for T3 Code, a product from Theo's own company, Theo called the council before any code was written. The PR calls this step 'round 0,' and that is when the council decided what to cut. The council estimated that thread body data made up 1–8% of what a thread loads when it opens, and decided that loading collapsed rows later was not worth expanding the protocol.

By Theo's measurements on a copy of real data (325 threads), opening 7 threads loaded 1,296KB in total instead of 8,528KB, an 85% drop. One thread with 71 subthreads went from 3,046KB to 293KB. Scores from the three members (Claude Opus 5.5, Muse Wonder Full, GPT-6.1 Sol) rose from 7–8 to 9–9.5 over four rounds, and the PR was merged on October 25.

The screenshot at the top shows Theo calling the council on a different PR (#31). A one-line request starts all three members reviewing at once, and the agent answers that it will merge only when all three say it is safe.

The request Theo sent in the screenshot at the top

Consult council to make sure this is safe. Merge it once they're happy.

If you want to merge it yourself, drop the last sentence.

How people reacted

What people liked

  • “Declined as scope creep after the bar was met: recolouring Python's annotation `:` / `->` cyan to match TS.”

    A line from the description of the PR in which Abraham fixed a personal VS Code theme through four rounds of council design review.

    Abraham Prince · GitHubgithub.com
  • “Why not adding gemini with no weight in the decision just to make fun of his decision 😂”

    Theo replied "I hate how much I like this idea." and added Gemini to Theo's own council as a guest member whose score doesn't count. That guest seat is not in the public tstack.

    Jonathan Delaire · Xx.com
  • “一个 AI code review 小习惯:别只让一个模型审。”

    A small AI code review habit: don't let just one model do the review.

    From a post introducing Theo's council.

    zZ · Xx.com

What fell short

  • “Scores are subjective overall quality within scope; they do not replace verification.”

    From Nikita's own PR, merged after seven council rounds.

    Nikita Maximilian Grimm · GitHubgithub.com
  • “Claude Opus and Gemini were satisfied by round 5. GPT Sol's last two findings were left out of scope, each a multi-step edge chain”

    GPT Sol stopped at 8, and the PR was merged as is.

    Uzair Ansar · GitHubgithub.com
  • “Gemini Pro was not reached: its provider is disabled in T3 Code, and the council does not substitute seats.”

    So the council had only two members for all four rounds.

    Abraham Prince · GitHubgithub.com
  • “In your council skill, do reviewers see each other's findings, or review independently first? For multi-model reviews, we're interested in whether sequential critique catches more real bugs or just amplifies the first plausible false positive.”

    Nex41 · Xx.com

How to start

Paste the request below into Claude Code or Codex. You need to be logged in to the GitHub CLI (gh). To seat all three members, you also need an environment that can call models from other companies (T3 Code or each company's API).

  1. Starter prompt

    Read https://www.working-ref.com/en/reference/tstack-council-2026-10, then install the skills from https://github.com/t3dotgg/tstack in this environment. First, check whether gh is logged in and which models I can call as council members, and tell me. Then suggest three things in my repo that would be worth trying with council. If I pick one, start right away. If none of them fits, open a PR from the changes on the current branch and get a council review first. I'll do the merge myself, so stop right before merging.

Share this reference

Weekly · Free

Was this reference helpful?

The week in AI: the BEST
just 3, straight to your inbox

Work Smarter with AI

420 readers get it every week

You're in See you in your inbox with the next issue.