xuzhougeng/compute-env-setup
Set up and validate a reproducible Python or R environment on a Wisp execution context. Use for a selected local, WSL, or direct SSH context when installing scientific packages, configuring caches, recording interpreter activation, or producing an environment smoke test. Do not use for scheduler clusters or managed cloud providers that Wisp cannot track yet.
npx skills add https://github.com/xuzhougeng/wisp-science --skill compute-env-setup
Treat the selected and probed ExecutionContext as authoritative. Wisp
currently supports local, wsl:<distro>, and direct ssh:<alias> contexts;
it does not expose an authenticated provider SDK inside Python.
Define before installing:
Use references/envs_reference.md for package-order and cache examples, but
replace container-specific paths with paths valid on the selected context.
ssh:<alias> context with a recent Probe result. Respectrecorded GPU, privilege, interpreter, conda/mamba, module, and scheduler
capabilities.
shared login node; Wisp needs a scheduler-aware Run backend first.
shell commands to confirm free space,existing environments, and cache paths.
runs/setup-<environment>.sh. It must use user-writable paths, fail fast,
activate the environment explicitly, run all smoke checks, and write a
small JSON manifest only after validation succeeds.
{
"context_id": "ssh:gpu-box",
"title": "Set up singlecell environment",
"command": "bash setup-singlecell.sh /home/me/envs/singlecell /home/me/wisp-env-manifests/singlecell.json",
"timeout_secs": 14400,
"input_paths": ["runs/setup-singlecell.sh"],
"output_specs": [
{
"glob": "ssh://gpu-box/home/me/wisp-env-manifests/singlecell.json",
"kind": "environment-manifest",
"residency": "remote"
}
]
}
monitor_runexactly once when waiting is useful. Use one get_run snapshot later or
cancel_run when requested.
date, and known limitations in a normal project file such as
environments/<context>/<name>.md. This file is documentation, not a hidden
resolver.
actionable version mismatch.
replace pinned torch, CUDA, JAX, NumPy, or compiled extensions.
sudo unless the Probe explicitly records suitable privilege andthe user authorizes it. Prefer conda packages, modules, or user paths.
model's real loader, verify non-empty content and completion markers, then run
a representative inference witness.
representative workload pass.
Local and WSL Runs are currently capped at 300 seconds and do not support
input_paths. Use local-env-setup for normal interactive setup. Use
run_in_context only for a bounded command that finishes within that limit and
writes outputs to host-visible project paths.
Wisp has no scheduler, Modal, RunPod, cloud Batch, container-service, or managed
endpoint execution context today. Do not invent a provider id or hide those
lifecycles inside an SSH submission command. Explain the boundary or use a
dedicated direct SSH host until a backend implementing submit, poll, cancel,
recovery, secrets, and artifact harvest exists.
Take xuzhougeng/compute-env-setup from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.