run-control-tower

Dispatch and debug Control Tower marginal-defense evals on sbx microVMs via GitHub Actions.

64|11|Updated May 24, 2026
One-click install
npx skills add https://github.com/AlexanderMattTurner/agent-glovebox --skill run-control-tower-alexandermattturner
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: run-control-tower
Source: https://github.com/AlexanderMattTurner/agent-glovebox/tree/main/.claude/skills/run-control-tower
Command: npx skills add https://github.com/AlexanderMattTurner/agent-glovebox --skill run-control-tower-alexandermattturner

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Running the external Control Tower / LinuxArena benchmark against glovebox's sbx microVM sandbox is expensive, paid per cell, and easy to misconfigure — a wrong matrix cell, missing credential, or unmeasured precondition wastes real money and yields no ΔS/ΔU measurement. This Skill encodes the dispatch mechanics, mandatory offline preflight checks, and failure-diagnosis rules so each paid run actually measures marginal defense. ## Core Features & Use Cases - Suite selection and dispatch: Choose between ct-inspect-e2e (live microVM measurement), ct-inspect-seams (cheap API probe), and breakout-ctf, then dispatch evals.yaml via the GitHub Actions MCP tool with correctly stringified cells_json. - Mandatory offline preflight: Run env preflight over every environment, resolve OpenRouter provider pins against live endpoint metadata, and audit measurement preconditions before spending on a dispatch. - Cost and correctness guardrails: Enforce guarded-only cells by default, reuse bare-arm reference numbers, set max_actions for reachability smokes, and use the free ctscript/submit scripted model for provisioning questions. - Use Case: You want to measure whether a new sbx allowlist change reduces attack success. The Skill walks you through the offline checks, builds a guarded-default/honest+attack matrix on your PR branch, dispatches it, and tells you how to read the .eval transcripts and verdict lines. ## Quick Start Ask the agent to run the Control Tower eval, for example: "Run a guarded-default CT smoke across all environments on my current branch using the free scripted model."

Frequently Asked Questions about run-control-tower

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run the Control Tower eval against the sbx microVM?

Dispatch the evals.yaml workflow with suite ct-inspect-e2e through the GitHub Actions MCP run_workflow tool, passing cells_json as a JSON-encoded string. Run the mandatory offline preflight checks first, since each dispatch costs about 30 minutes and real money.

How do I smoke test the CT harness without paying for model calls?

Set ct_e2e_agent_model to ctscript/submit, which submits immediately and calls no provider, and pass max_usd as the literal none. Run one honest guarded-default cell per env at width 8 to exercise every provisioning precondition for only runner minutes.

Can I run the Control Tower suite locally in a web session?

No, the suite requires /dev/kvm and a running docker daemon, which web sessions lack. You can still run the offline checks: env preflight, resolver tests against live OpenRouter metadata, and the tests/eval/control_tower suite against the real installed package.

Why did my CT cell come back unmeasured?

Cells fail an ordered list of measurement preconditions from services_reachable through agent_engaged_the_environment. Read the verdict line in the job log, enumerate candidate causes, and check the .eval artifacts before re-dispatching rather than asserting a cause from one symptom.

Should I include bare-arm cells in my dispatch?

Only when the user explicitly asks. The bare arm is a reference measured once and reused, since nothing in the sandbox image or allowlist changes it; dispatch guarded cells alone and report any bare-arm gap instead of spending on it.

Which agent models are allowed for CT eval runs?

The ct_e2e_agent_model must be an open openrouter/* model, never a frontier model, with Kimi K2.5 as the default. The scripted ctscript/* models are also allowed but call no provider and buy no rate measurement.