| name | dev-env-setup |
| description | Create a fresh venv, editable-install a Python project, and run its test suite — pure shell, zero LLM calls |
| capabilities | ["shell"] |
Dev Env Setup
Bootstrap and verify a Python project's development environment without
involving an LLM. Reads pyproject.toml (or falls back to requirements.txt),
provisions a venv, installs the project editable, and runs the test suite.
This is a procedure skill (class: procedure): the harness encodes the
steps, so the LLM is removed from the deterministic plumbing entirely. It
exists to anchor the Phase 1 token-savings thesis (≥5× without/with) on a
task class where the thesis actually applies.
Run
tmuxllm-skill run dev-env-setup
Env vars
| var | default | meaning |
|---|
REPO | $PWD | Project to set up |
WS | /tmp/dev-env-setup-<pid> | Workspace for venv + result.json |
PYTHON | python3 | Interpreter to seed the venv with |
PYTEST_ARGS | -q | Args appended to pytest. Quoted multi-word args survive (e.g. -m "not e2e" -q). |
What it does
- Resolve
$PYTHON; abort if missing.
python -m venv $WS/venv
- Detect installable target:
pyproject.toml present → pip install -e '.[dev]' (or '.' if no
dev extras).
requirements.txt present → pip install -r requirements.txt.
- Neither → abort with status
failure.
pytest $PYTEST_ARGS (run from $REPO).
- Write
$WS/result.json with the canonical envelope (status, summary,
decisions: 0, zero-token tokens block).
Why zero LLM calls
Each step has a single deterministic right answer for any given project
state. Wrapping these in an LLM loop is wasteful: a from-scratch tmuxllm
agent would burn ~10–20 decisions deciding which Python to use, where to
put the venv, parsing pyproject.toml, interpreting pytest output, deciding
when to declare done. The skill replaces that with bash and reports the
outcome.
A/B comparison
TMUXLLM_PROFILE=openrouter-sonnet \
python tools/skill_ab.py \
--skill dev-env-setup \
--scratch-goal "Set up a fresh Python development environment for $REPO: \
create a venv, install the project editable with dev extras, and run the \
test suite excluding e2e markers. Report success or the failing test names."
Pass criteria: ratio ≥ 5× (the procedure-skill criterion from the revised
Phase 1 verification gate).