Tagout

Tagout

Tagout takes an idea to a merged pull request while you do something else. Say what you want; your coding agent files the issue with a plan, builds it on a branch, opens the pull request, waits for CI and merges it. Every step is checked by a script that stops the agent when something is wrong and says what to fix.

No green tag, no merge.

tagout
The issue → PR lifecycle, for any GitHub repository in any language. No .NET, no MCP server.
tagout-migrate
The add-on for a legacy .NET application: the seven-phase /migrate pipeline to verified production. Needs RoselineMCP (.NET 10 SDK). The .NET add-on.

Refusal, as written by the gatehooks/git-write-gate.sh

Locked by
git-write-gate.sh
On
git commit, the raw command
Reason
A bare commit does not check which branch HEAD is on — that is how #26 and #280 landed work on someone else's branch with exit 0.
Use instead
guarded-commit.sh -C <worktree> <branch> -- <git commit args>

Read the methodology Source on GitHub

One run, start to finish

One issue of this repository, from the idea to the merge. Its pull request was opened at 12:07:43 and merged at 12:24:27, 17 min later. The three links are the proof.

  1. create-issueIssue #762, with a brainstorm, a spec and a plan2026-11-10 13:17 UTC
  2. implement-issue #762Pull request #779: 2 commits, +95 −402026-11-11 12:07 UTC
  3. merge-pr #779CI green, squash-merged, issue closed2026-11-11 12:24 UTC

The lifecycle, on this repository

Tagout is built with Tagout. Read from this repository's tracker on 2026-11-11 by scripts/site-figures.py.

pull requests merged
408
issues delivered
324
hours, issue filed to merged, median
19.6

The auto-dev case study of this repository.

What the gates refuse

Three ways an agent-driven change goes wrong without anyone noticing, and the lock that stops each one.

Which command?

Once installed, say what you have. Each row is a skill or a command, and each one ends with a recap and the next command to type.

SituationReach for
An idea to trackcreate-issue
An issue with a planimplement-issue #N
A PR to landmerge-pr #N
One idea or issue to a merged PR, hands-offdeliver-issue <idea> or #N
A queue that never shrinkstriage-backlog
Many issues, hands-offauto-dev
What went wrong in my last sessionsreview-sessions
A legacy .NET appThe .NET add-on
A new repo for these skills/tagout:init
Something is already brokendebug-issue fires on its own

For a legacy .NET app

The add-on cleared three apps from dead platforms in 18 minutes (Chords), about 30 minutes (Les Fleurs du Mal) and about 1 hour (Pokédex G), timed from the gate commits. The apps, the seven phases and the install line are on the .NET add-on.

The rest of the site

The method in full, the decisions behind it, and one article per release.