Skip to content

tommyc10/tblock

v0.4.1MIT

Rigorous agent workflows for Claude Code, Codex, and GitHub Copilot. Go deep first, then go fast.

tblock

Engineering skills, playbooks, and principles for coding agents in GitHub Copilot and Claude Code. tblock makes the agent name the data shape before it writes code, keep diffs small, prove changes in the running app, and show you that evidence. It started from pstack and adds a UI focus, model roles, and bank-safe defaults.

Install

GitHub Copilot CLI:

copilot plugin install tommyc10/plugins:tblock

GitHub Copilot in VS Code: add tommyc10/plugins to chat.plugins.marketplaces, then install tblock from Agent Plugins.

Claude Code:

claude plugin marketplace add tommyc10/plugins
claude plugin install tblock@plugins

Copilot caches installed plugins. After an update, reinstall tblock to pick up the new version.

Set up once

Run /setup-tblock. It asks which models you have, maps each role to one, and writes ~/.tblock/roles.md. In Copilot it also writes one custom agent per role to ~/.copilot/agents/, because Copilot sets a subagent's model in its agent file.

RoleUsed by
codeDelegated changes in Feature, Bug fix, Perf issue, and Hillclimb
hardestCross-cutting design, concurrency, and subtle algorithms
judgmentExplanations and judging other agents' work
artistUI work, through the artist agent
reviewersThe interrogate panel, one reviewer per model
swarm workersswarm workers and how explorers
shootout runners and shootout judgesshootout attempts and their judges

/setup-tblock writes these files through tblock's CLI, so they come out the same every time.

CLI

tblock ships a small Node CLI at bin/tblock.mjs, with no dependencies. Point an alias at your install:

alias tblock="node ~/.copilot/installed-plugins/_direct/tommyc10--plugins--tblock/bin/tblock.mjs"

For Claude Code, the folder is the installPath that claude plugin list --json shows for tblock@plugins.

CommandWhat it does
tblock doctorChecks the install in each tool, the roles file, the Copilot role agents, and the git CLIs. Exits 1 on any FAIL.
tblock rolesShows which model each role uses
tblock roles set code=gpt-5 reviewers=claude-opus-5,gpt-5Sets roles, and rewrites the Copilot role agents when the harness is Copilot
tblock roles syncRewrites the Copilot role agents from the roles file

Add --json for output a script or agent can read. Colour and the banner appear only in a terminal, and NO_COLOR turns colour off.

Pick models from different families for the panel roles. Agreement across families is what makes a review or a shootout worth trusting. Without a roles file, every subagent runs on the session model.

Use

Start a task with /tblock-mode <task>. tblock-mode picks the playbook or skill that fits, opens a todo list from its steps, and tells you which principles shaped each decision. To change a role for one session, say so: "use GPT for code today".

tblock works without asking on reversible, local work: reading, editing, builds, tests, and local commits. It always stops and asks before pushing, opening or merging a PR or MR, posting to chat or tickets, deploying, or deleting anything.

What's inside

Playbooks, routed by tblock-mode:

PlaybookFor
InvestigationRead-only questions: how, why, are we sure, X or Y
FeatureNew or changed behavior, built from a named data shape
Bug fixReproduce, find the root cause, fix, prove
RefactoringStructure changes, behavior doesn't
Perf issue and HillclimbMeasured speedups, one-off or iterative
UI-UXUI work, every state proved in the browser
PrototypeSettle a design question with a throwaway sketch
Authoring a skill and EvalWrite skills, and test whether a change helps

Skills:

Principles: 25 short rules, such as Prove It Works and Laziness Protocol. tblock-mode lists them all, with when each applies.

Develop

Check every skill before you commit:

ruby tblock/scripts/validate-skills.rb
node --test tblock/bin/tblock.test.mjs

It checks frontmatter, local links, that every principle is routed from tblock-mode, that every model role is used, that the Claude Code and Copilot copies of each agent match, and that the three manifests agree on name and version.

To test whether a change makes agents do better work, the Imperial Ops eval kit runs tblock and plain Claude on the same task in separate copies of a project, then has a blind judge score both.

Credits

Much of tblock is adapted from pstack by Lauren Tan, under the MIT license. See LICENSE.