Agent skill

Bench Baton

by nooga in nooga/let-go

Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration…

MITAuto-check passedDevelopment

Install Bench Baton

skills CLI
$ npx skills add nooga/let-go --skill bench-baton -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nooga/let-go bench-baton --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nooga/let-go.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/bench-baton .claude/skills/bench-baton && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bench-baton
GitHub stars
568
Token cost
~821 tokens
SKILL.md length
304 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration…

  • Parallel workers could perturb benchmark numbers
  • SKILL.md covers Shell and Rules
  • Calls go and make
  • A perf gate needs an idle machine

What it does

Bench Baton is an agent skill from nooga/let-go. Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration, and lint run concurrently in a capacity-limited shared lane. Use when parallel workers could perturb benchmark numbers, when a perf gate needs an idle machine, or when concurrent builds need a fair capacity cap and a shared ledger.

Its SKILL.md is about 820 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Test generation, Git worktrees and Linting and formatting. The repository describes itself as: Almost Clojure written in Go. The licence is MIT.

When your agent uses it

  • Parallel workers could perturb benchmark numbers
  • A perf gate needs an idle machine
  • Concurrent builds need a fair capacity cap and a shared ledger

Example prompts

  • “/bench-baton”

What it can do on your machine

Read from SKILL.md and the folder at commit ff1e6da. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bench Baton loads about 821 tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 304 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~821

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nooga/let-go at commit ff1e6da, republished under its MIT licence (© nooga). 304 words, ~821 tokens.

Download SKILL.mdSave it as .claude/skills/bench-baton/SKILL.md (or your agent's skills folder).
name
bench-baton
description
Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration, and lint run concurrently in a capacity-limited shared lane. Use when parallel workers could perturb benchmark numbers, when a perf gate needs an idle machine, or when concurrent builds need a fair capacity cap and a shared ledger.
version
2026-09-03
triggers
benchmark, bench-ratchet, perf gate, quiet machine, run tests in parallel, make generate, baton, lease
tools
bash
preconditions
Unix-like host (flock), go toolchain
constraints
benchmarks and timing gates go through bench, never build, give every worker a stable --owner, cheap commands take no lease

bench-baton — one quiet machine, two lanes

The scarce resource is a quiet machine, not the build tree. cmd/bench-baton arbitrates one pool per machine-level resource:

lanemodeuse forconcurrency
benchexclusivebenchmarks, make bench-ratchet, timing assertionsalone — no other bench, no builds
buildsharedbuilds, test suites, make generate / check-generated, lintup to --max-shared (default 4)

A waiting benchmark closes the gate: shared work arriving behind it is deferred until the bench has run, so a stream of builds cannot starve it. Leases are flocks, so a holder that dies releases the pool by itself; reap only tidies the record.

State lives in $BENCH_BATON_HOME (default ~/Library/Caches/let-go/batons on macOS, ~/.cache/let-go/batons on Linux), one directory per --pool (default letgo): state.json, ledger.jsonl, logs/, and the lock files. Set BENCH_BATON_HOME to an existing pool root to keep its ledger.

Shell

bash
go run ./cmd/bench-baton bench --owner pr641 --cwd WT -- make bench-ratchet
go run ./cmd/bench-baton build --owner pr641 --cwd WT -- go test ./...
go run ./cmd/bench-baton run --mode shared --owner pr641 -- make generate
go run ./cmd/bench-baton status
go run ./cmd/bench-baton ledger -n 10
go run ./cmd/bench-baton reap

build / bench exit with the wrapped command's return code and print its tail, so they drop into existing scripts unchanged; the full output is in the log the ledger names. --lease-timeout SEC makes a worker report contention instead of blocking; --timeout SEC kills a runaway command.

Rules

  • Benchmarks and any timing-sensitive gate go through bench — never build. A ratchet number captured next to a running test suite is noise the ratchet cannot tell from a regression (the pre-push gate compares against a baseline captured on a quiet machine).
  • Builds and tests use build; they are concurrent, so do not hand-serialize them.
  • Give every worker a stable --owner (worktree or PR name) so status and ledger read well across subagents.
  • One pool per machine-level resource; --pool for an unrelated project.
  • Cheap commands (grep, one focused test, jj status) take no lease at all.
  • Before blaming a commit for an anchor drift, check the power state (pmset -g | grep lowpowermode); a laptop on battery is not a quiet machine either.

© nooga, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/bench-baton of nooga/let-go.

Open the folder on GitHubat commit ff1e6da

Compare with similar skills

Bench Baton next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bench Baton compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bench Baton this skillnooga/let-go568—~821Automated safety check: PassMIT
Suede Agent TeamsJasonColapietro/suede-creator-skills127—~5.8kAutomated safety check: PassMIT
Conducty Shiprobertbarclayy/conducty176—~1.9kAutomated safety check: PassMIT
UI OnlyOutThisLife/brooklyn-skills199—~364Automated safety check: PassMIT
Cut Releasemicrosoft/apm4k—~2.5kAutomated safety check: PassMIT
Inference Format Optimizera2ui-project/a2ui17k—~985Automated safety check: PassApache-2.0

Similar skills

  • Suede Agent Teams

    JasonColapietro/suede-creator-skills

    Suede Labs agent-team orchestrator: split complex work into coordinated lanes with explicit file ownership, WIP collision detection, quality gates, escalation thresholds, rollback plans, and…

    127 GitHub stars~5.8k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Conducty Ship

    robertbarclayy/conducty

    Pre-merge / pre-deploy gate. An agent skill from robertbarclayy/conducty.

    176 GitHub stars~1.9k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • UI Only

    OutThisLife/brooklyn-skills

    While iterating on UI, do not waste time on tsc, lint, typecheck, format, full test suites, commit, or push until the user likes how it looks and works.

    199 GitHub stars~364 tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Cut Release

    microsoft/apm

    Official

    A skill your agent uses to cut an APM release from the current worktree: assess whether the cycle since the last tag warrants a patch or minor bump (semver discipline against the…

    4k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Iterative benchmarking, evaluation, and algorithmic optimization of alternative A2UI inference formats (such as Express, Atom, and Elemental).

    17k GitHub stars~985 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Cursor Composer Task Delegate

    Chachamaru127/claude-code-harness

    Hands one implementation task to Cursor Composer in an isolated git worktree, then reviews its diff and cherry-picks the result into the main branch.

    3.2k GitHub stars~4.4k tokensUpdated 4 days ago
    DevelopmentAuto-check: notes

More from nooga/let-go

  • Comment Lint

    nooga/let-go

    Act on the devlog/breadcrumb comment findings from scripts/lint.lg — decide per hit whether to rewrite or delete a comment, and rewrite it so it describes the code rather than the change that…

    568 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Docs Status

    nooga/let-go

    Audit documentation hygiene for the let-go docs/ tree — find stale or unverified docs, dangling or one-sided supersession links, duplicate authoritative-for claims, and docs missing from the README…

    568 GitHub stars~589 tokensUpdated yesterday
    Auto-check passed

Questions about Bench Baton

What does Bench Baton do?

Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration…. Bench Baton is an agent skill from nooga/let-go. Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration, and lint run concurrently in a capacity-limited shared lane.

When should I use Bench Baton?

Bench Baton fits situations like: parallel workers could perturb benchmark numbers; A perf gate needs an idle machine; concurrent builds need a fair capacity cap and a shared ledger.

How do I install Bench Baton in Claude Code?

Run `npx skills add nooga/let-go --skill bench-baton -a claude-code`. Or copy the skill folder (.agents/skills/bench-baton in nooga/let-go) into .claude/skills/bench-baton in your project. Claude Code loads it when a task matches its description.

How do I install Bench Baton in Codex?

Run `npx skills add nooga/let-go --skill bench-baton -a codex`. Or copy the skill folder (.agents/skills/bench-baton in nooga/let-go) into .agents/skills/bench-baton in your project. Codex loads it when a task matches its description.

Can I use Bench Baton in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nooga/let-go --skill bench-baton -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bench-baton, .gemini/skills/bench-baton, .github/skills/bench-baton and .opencode/skills/bench-baton in your project.

What does Bench Baton need to run?

Going by SKILL.md and its folder, Bench Baton needs the command-line tools its instructions call (go and make).

Does Bench Baton access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Bench Baton safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bench Baton use?

Bench Baton is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bench Baton use?

About 821 tokens (SKILL.md is roughly 3.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bench Baton?

Skills that share tags, products or a category with Bench Baton: Suede Agent Teams (JasonColapietro/suede-creator-skills, 127 stars), Conducty Ship (robertbarclayy/conducty, 176 stars), UI Only (OutThisLife/brooklyn-skills, 199 stars) and Cut Release (microsoft/apm, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bench Baton?

nooga (a GitHub user) maintains it in nooga/let-go, which has 568 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 8, 2026.

Source: nooga/let-go on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.