/benchmark
Run SWE-bench Lite benchmarks against agtx coding agent workflows. Guides setup, configuration, execution, evaluation, and reporting.
$ npx -y skills add fynnfluegge/agtx --skill benchmark --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/benchmark
Context preview
The summary Claude sees to decide when to auto-load this skill.
Run SWE-bench Lite benchmarks against agtx coding agent workflows. Guides setup, configuration, execution, evaluation, and reporting.
SKILL.md
benchmark.SKILL.mdname: benchmark
description: "Run SWE-bench Lite benchmarks against agtx coding agent workflows. Guides setup, configuration, execution, evaluation, and reporting."
disable-model-invocation: true
Benchmark — SWE-bench Lite
You are a benchmark guide. Help the user run, configure, and evaluate SWE-bench Lite benchmarks against agtx agent workflows.
**Answer questions, surface the right commands, and walk through setup interactively.** All commands assume the user is in the `benchmark/` directory.
---
Prerequisites
| Tool | Install | |------|---------| | **Docker** | Required for sandbox mode. macOS: Docker Desktop. Ubuntu: `apt install docker.io` | | **agtx binary** | `cargo build --release` from repo root | | **uv** | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | | **tmux** | macOS: `brew install tmux`. Ubuntu: `apt install tmux` | | **tokscale** (optional) | `npm install -g tokscale` — enables cost/token tracking in results | | **Coding agent** | At least one: Claude Code, Gemini CLI, or Codex CLI |
One-Time Setup
cd benchmark/swebench
# Initialize Python environment (once, or after pyproject.toml changes)
uv sync
# [Sandbox only] Build the tools image (tmux + Node.js + Claude Code)
python prebake_images.py --verbose
# [Sandbox only] Build the Linux agtx binary (Ubuntu 22.04 / glibc 2.35)
bash build_linux_binary.sh
The tools image populates the shared Docker volume `agtx-swebench-tools` on the first benchmark run. To force a refresh after updating Claude Code:
docker volume rm agtx-swebench-tools
python prebake_images.py --force --verbose
---
Configuration
Config files live in `swebench/configs/`. Each is a standard agtx `ProjectConfig` TOML written to `.agtx/config.toml` in every cloned repo.
**Minimal (no workflow):**
default_agent = "claude"
workflow_plugin = "void"
**Standard agtx workflow:**
default_agent = "claude"
workflow_plugin = "agtx"
worktree_dir = ".agtx/worktrees"
**Sandbox-optimised** (agent works directly in `/testbed`, no worktree):
default_agent = "claude"
workflow_plugin = "agtx"
worktree_dir = ".agtx/worktrees"
skip_worktree = true
**Mixed agents** (different agent per phase):
default_agent = "claude"
workflow_plugin = "agtx"
[agents]
planning = "gemini"
running = "claude"
review = "codex"
**With `sandbox_init`** (install extra tooling inside the container before the agent starts):
default_agent = "claude"
workflow_plugin = "agtx"
skip_worktree = true
sandbox_init = [
"curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh",
"export PATH=$HOME/.local/bin:$PATH && rtk init -g",
]`sandbox_init` commands run with `HOME=/home/bench` and `PATH` including `/home/bench/.local/bin`. Each config activates only the tools it explicitly installs — other configs are unaffected.
Available plugins: `void`, `agtx`, `agtx-terse`, `gsd`, `spec-kit`, `bmad`, `openspec`, `superpowers`, `agent-skills`
Pre-built configs for common combinations are in `swebench/configs/`.
---
Running
> **Sandbox mode requires a Linux x86_64 binary.** Use `--agtx ../target/agtx-linux-x86_64` (not `../target/release/agtx`). > > **Always recommend sandbox mode.** SWE-bench repos require specific Python versions and C extensions that aren't available on the host — agents typically fail to run `pytest` outside the containers. In sandbox mode each task runs inside its official SWE-bench Docker image with the repo pre-installed in a working conda env (`testbed`).
**Single random task:**
uv run --project swebench \
python swebench/benchmark.py \
--config swebench/configs/claude-void.toml \
--instances 1 --verbose \
--agtx ../target/release/agtx
**Specific instance IDs:**
uv run --project swebench \
python swebench/benchmark.py \
--config swebench/configs/claude-void.toml \
--instance-ids sympy__sympy-20590 django__django-11099 \
--agtx ../target/release/agtx
**Sandbox mode (recommended):**
python swebench/benchmark.py \
--config swebench/configs/claude-agtx.toml \
--instance-ids astropy__astropy-12907 \
--sandbox --verbose \
--agtx ../target/agtx-linux-x86_64
**Parallel tasks:**
uv run --project swebench \
python swebench/benchmark.py \
--config swebench/configs/claude-agtx.toml \
--concurrency 4 \
--agtx ../target/release/agtx
**Full 300-task run:**
uv run --project swebench \
python swebench/benchmark.py \
--config swebench/configs/claude-agtx.toml \
--agtx ../target/release/agtx
**Resume an interrupted run** (pass the same `--output-dir`):
uv run --project swebench \
python swebench/benchmark.py \
--config swebench/configs/claude-agtx.toml \
--output-dir swebench_output/agtx_claude_20260427_120000 \
--agtx ../target/release/agtx
**Hard mode** (prose only — no code blocks or stack traces in the problem statement):
uv run --project swebench \
python swebench/benchmark.py \
--config swebench/configs/claude-agtx.toml \
--hard \
--agtx ../target/release/agtx
All CLI Options
| Flag | Default | Description | |------|---------|-------------| | `--config PATH` | *(required)* | agtx config.toml for this run | | `--instances N` | all 300 | Run first N tasks | | `--instance-ids ID...` | — | Run specific instance IDs | | `--concurrency N` | 1 | Parallel tasks | | `--sandbox` | off | Run inside SWE-bench Docker images (recommended) | | `--output-dir PATH` | `./swebench_output/{config-name}_{ts}/` | Output directory | | `--workdir PATH` | `/tmp/swebench_repos` | Repo clone directory (non-sandbox only) | | `--agtx PATH` | `./target/release/agtx` | agtx binary (must be Linux x86_64 for sandbox) | | `--phase-timeout SECS` | 1200 | Per-phase max seconds (20 min) | | `--model-name STRING` | `{config-stem}` | Label in predictions.jsonl | | `--split STRING` | `test` | HuggingFace dataset split | | `-
Read more
name: benchmark description: "Run SWE-bench Lite benchmarks against agtx coding agent workflows. Guides setup, configuration, execution, evaluation, and reporting." disable-model-invocation: true
Benchmark — SWE-bench Lite
You are a benchmark guide. Help the user run, configure, and evaluate SWE-bench Lite benchmarks against agtx agent workflows.
**Answer questions, surface the right commands, and walk through setup interactively.** All commands assume the user is in the `benchmark/` directory.
---
Prerequisites
| Tool | Install | |------|---------| | **Docker** | Required for sandbox mode. macOS: Docker Desktop. Ubuntu: `apt install docker.io` | | **agtx binary** | `cargo build --release` from repo root | | **uv** | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | | **tmux** | macOS: `brew install tmux`. Ubuntu: `apt install tmux` | | **tokscale** (optional) | `npm install -g tokscale` — enables cost/token tracking in results | | **Coding agent** | At least one: Claude Code, Gemini CLI, or Codex CLI |
One-Time Setup
cd benchmark/swebench # Initialize Python environment (once, or after pyproject.toml changes) uv sync # [Sandbox only] Build the tools image (tmux + Node.js + Claude Code) python prebake_images.py --verbose # [Sandbox only] Build the Linux agtx binary (Ubuntu 22.04 / glibc 2.35) bash build_linux_binary.sh
The tools image populates the shared Docker volume `agtx-swebench-tools` on the first benchmark run. To force a refresh after updating Claude Code:
docker volume rm agtx-swebench-tools python prebake_images.py --force --verbose
---
Configuration
Config files live in `swebench/configs/`. Each is a standard agtx `ProjectConfig` TOML written to `.agtx/config.toml` in every cloned repo.
**Minimal (no workflow):**
default_agent = "claude" workflow_plugin = "void"
**Standard agtx workflow:**
default_agent = "claude" workflow_plugin = "agtx" worktree_dir = ".agtx/worktrees"
**Sandbox-optimised** (agent works directly in `/testbed`, no worktree):
default_agent = "claude" workflow_plugin = "agtx" worktree_dir = ".agtx/worktrees" skip_worktree = true
**Mixed agents** (different agent per phase):
default_agent = "claude" workflow_plugin = "agtx" [agents] planning = "gemini" running = "claude" review = "codex"
**With `sandbox_init`** (install extra tooling inside the container before the agent starts):
default_agent = "claude"
workflow_plugin = "agtx"
skip_worktree = true
sandbox_init = [
"curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh",
"export PATH=$HOME/.local/bin:$PATH && rtk init -g",
]`sandbox_init` commands run with `HOME=/home/bench` and `PATH` including `/home/bench/.local/bin`. Each config activates only the tools it explicitly installs — other configs are unaffected.
Available plugins: `void`, `agtx`, `agtx-terse`, `gsd`, `spec-kit`, `bmad`, `openspec`, `superpowers`, `agent-skills`
Pre-built configs for common combinations are in `swebench/configs/`.
---
Running
> **Sandbox mode requires a Linux x86_64 binary.** Use `--agtx ../target/agtx-linux-x86_64` (not `../target/release/agtx`). > > **Always recommend sandbox mode.** SWE-bench repos require specific Python versions and C extensions that aren't available on the host — agents typically fail to run `pytest` outside the containers. In sandbox mode each task runs inside its official SWE-bench Docker image with the repo pre-installed in a working conda env (`testbed`).
**Single random task:**
uv run --project swebench \ python swebench/benchmark.py \ --config swebench/configs/claude-void.toml \ --instances 1 --verbose \ --agtx ../target/release/agtx
**Specific instance IDs:**
uv run --project swebench \ python swebench/benchmark.py \ --config swebench/configs/claude-void.toml \ --instance-ids sympy__sympy-20590 django__django-11099 \ --agtx ../target/release/agtx
**Sandbox mode (recommended):**
python swebench/benchmark.py \ --config swebench/configs/claude-agtx.toml \ --instance-ids astropy__astropy-12907 \ --sandbox --verbose \ --agtx ../target/agtx-linux-x86_64
**Parallel tasks:**
uv run --project swebench \ python swebench/benchmark.py \ --config swebench/configs/claude-agtx.toml \ --concurrency 4 \ --agtx ../target/release/agtx
**Full 300-task run:**
uv run --project swebench \ python swebench/benchmark.py \ --config swebench/configs/claude-agtx.toml \ --agtx ../target/release/agtx
**Resume an interrupted run** (pass the same `--output-dir`):
uv run --project swebench \ python swebench/benchmark.py \ --config swebench/configs/claude-agtx.toml \ --output-dir swebench_output/agtx_claude_20260427_120000 \ --agtx ../target/release/agtx
**Hard mode** (prose only — no code blocks or stack traces in the problem statement):
uv run --project swebench \ python swebench/benchmark.py \ --config swebench/configs/claude-agtx.toml \ --hard \ --agtx ../target/release/agtx
All CLI Options
| Flag | Default | Description | |------|---------|-------------| | `--config PATH` | *(required)* | agtx config.toml for this run | | `--instances N` | all 300 | Run first N tasks | | `--instance-ids ID...` | — | Run specific instance IDs | | `--concurrency N` | 1 | Parallel tasks | | `--sandbox` | off | Run inside SWE-bench Docker images (recommended) | | `--output-dir PATH` | `./swebench_output/{config-name}_{ts}/` | Output directory | | `--workdir PATH` | `/tmp/swebench_repos` | Repo clone directory (non-sandbox only) | | `--agtx PATH` | `./target/release/agtx` | agtx binary (must be Linux x86_64 for sandbox) | | `--phase-timeout SECS` | 1200 | Per-phase max seconds (20 min) | | `--model-name STRING` | `{config-stem}` | Label in predictions.jsonl | | `--split STRING` | `test` | HuggingFace dataset split | | `-
The blackboard for coding agents - Add tasks. Press one key. An orchestrator agent picks it up, plans, and delegates to multiple coding agents running in parallel. Come back to changes ready to merge.
Other skills on agtx.
- /agtx-execute
Execute an approved implementation plan. Implement the changes, then write a summary to .agtx/execute.md and stop.
Open skill - /agtx-plan
Plan a task implementation. Analyze the codebase, create a detailed plan, write it to .agtx/plan.md, then stop and wait for user approval before making any changes.
Open skill - /agtx-research
Explore the codebase to understand a task before planning. Write findings to .agtx/research.md and stop. This is a read-only exploration — do not modify any files.
Open skill - /agtx-review
Self-review completed work. Check for correctness, edge cases, and code quality. Write review to .agtx/review.md and stop.
Open skill - /brainstorm
Enter brainstorm mode to explore a feature or enhancement idea. Stays in discussion mode only — no planning, no implementation. Use /agtx:sweep when ready to push outcomes to the board.
Open skill - /sweep
Sweep this conversation into agtx tasks and push them to the kanban board. Use when the user wants to capture, decompose, or hand off conversation results to the agtx board.
Open skill

