gauntlet

Installation
SKILL.md

Gauntlet

Runs one ticket end to end and opens a PR only when every gate is green. Preflight is shell run here, in your session, with no model in the loop; the stages run inside the gauntlet-run workflow. The runner is "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/gauntlet/run.py"; its README (gauntlet/README.md beside it) is the per-repo bootstrap.

Procedure

  1. Parse the arguments. The first token is the ticket reference; an optional --from <stage> names the stage to enter at (default specify). Valid stages: specify, coder, cleaner, qa, ship. Anything else: stop and list them.

  2. Resolve a Linear reference. If the reference matches [A-Z]+-\d+, fetch the issue through the Linear MCP tools, write its title as an H1 and its description verbatim below it to .gauntlet/ticket-<id>.md in the repo root, and use that path as the reference. A GitHub number or a file path needs nothing — run.py reads those itself.

  3. Enter the run's worktree. The Stages are background subagents that Write/Edit the repo; on the shared checkout the platform's bg-isolation guard blocks them, forcing heredoc smuggling (ADR-0001). Isolate the run in a worktree this session owns:

    • git rev-parse --git-dir vs git rev-parse --git-common-dir. Equal → you are on the main checkout: EnterWorktree (name it after the ticket, e.g. gauntlet-<ref>) to create and enter one. Unequal → you are already in a linked worktree; reuse it, never nest.
    • Run preflight and the workflow from inside that worktree.
  4. Preflight. From the worktree root run, via Bash:

    python3 "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/gauntlet/run.py" preflight <ref> [--from <stage>]
    
Installs
3
GitHub Stars
1
First Seen
Aug 27, 2026