Mandatory pre-flight compute resource check before running experiments. Detects whether local/remote GPU or compute resources are actually available. If resources are unavailable, STOPS the experiment pipeline immediately and reports to the user — preventing the model from hallucinating fake experiment results. Use when: about to run experiments, deploy training, or any GPU-intensive task.
71
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
MANDATORY pre-flight check before any experiment execution. This skill determines whether the required compute resources are actually available. If they are not, you MUST stop immediately and inform the user — do NOT proceed to run experiments, and do NOT imagine or fabricate experiment results.
If this check determines compute resources are unavailable, you MUST:
Read the project's CLAUDE.md to determine the experiment environment:
gpu: local): Check local CUDA/MPSgpu: remote): Check SSH connectivity + remote GPUgpu: vast): Check for running instancesgpu: modal): Check Modal CLI + auth (Modal is serverless — always "available" if configured)If no CLAUDE.md exists or no gpu: setting is found, assume local environment.
# Check if nvidia-smi exists
which nvidia-smi 2>/dev/null
# If exists, check GPU status
nvidia-smi --query-gpu=index,name,memory.used,memory.total,utilization.gpu --format=csv,noheader 2>/dev/nullAvailable = nvidia-smi succeeds AND at least one GPU has memory.used < 500 MiB (free).
Unavailable = nvidia-smi not found, returns error, or ALL GPUs have memory.used >= memory.total * 0.9.
python3 -c "
import torch
mps_available = hasattr(torch.backends, 'mps') and torch.backends.mps.is_available()
print(f'MPS_AVAILABLE={mps_available}')
if mps_available:
print('COMPUTE_OK=true')
else:
print('COMPUTE_OK=false')
" 2>/dev/nullAvailable = MPS is available (Apple Silicon with PyTorch MPS support). Unavailable = No MPS, no CUDA, pure CPU only — warn user that experiments will be extremely slow or may not work.
# Check if any GPU framework is available
python3 -c "
import torch
cuda = torch.cuda.is_available()
mps = hasattr(torch.backends, 'mps') and torch.backends.mps.is_available()
print(f'CUDA={cuda}, MPS={mps}')
if not cuda and not mps:
print('COMPUTE_OK=false')
print('REASON=No GPU available (no CUDA, no MPS). CPU-only execution is not suitable for ML training experiments.')
else:
print('COMPUTE_OK=true')
" 2>&1If python3 or torch is not installed:
# Fallback: check for nvidia-smi directly
nvidia-smi 2>/dev/null || echo "COMPUTE_OK=false"
echo "REASON=Neither nvidia-smi nor PyTorch found. Cannot verify GPU availability."# Check SSH connectivity (timeout 10s)
ssh -o ConnectTimeout=10 -o BatchMode=yes <server> "echo CONNECTED" 2>/dev/null
# If connected, check GPU
ssh -o ConnectTimeout=10 <server> "nvidia-smi --query-gpu=index,memory.used,memory.total --format=csv,noheader" 2>/dev/nullAvailable = SSH connects AND GPU has free memory. Unavailable = SSH fails (server down, auth issue, network) OR no free GPU.
# Check for running instances
cat vast-instances.json 2>/dev/null
# Or query Vast.ai API
vastai show instances 2>/dev/nullAvailable = A running instance exists with SSH access. Unavailable = No running instances (need to provision one first).
# Check Modal CLI is installed and authenticated
modal token verify 2>/dev/null || echo "MODAL_NOT_CONFIGURED"Available = Modal CLI installed and authenticated. Unavailable = Modal not installed or not authenticated.
| Check Result | Action |
|---|---|
| COMPUTE_OK = true | Proceed with experiment. Print brief resource summary and continue. |
| COMPUTE_OK = false | STOP IMMEDIATELY. Do NOT run any experiments. Go to Step 4. |
When compute resources are NOT available, respond with a clear, structured message:
⚠️ COMPUTE RESOURCES UNAVAILABLE — Experiment Stopped
I checked the compute resources and they are NOT available for running experiments.
**Environment:** [local / remote / vast.ai / modal]
**Issue:** [specific reason — e.g., "No GPU detected", "SSH connection failed", "All GPUs fully occupied"]
**What you need to do:**
- [Actionable step 1 — e.g., "Ensure your machine has a CUDA-compatible GPU"]
- [Actionable step 2 — e.g., "Free up GPU memory by stopping other processes"]
- [Actionable step 3 — e.g., "Configure a remote server in CLAUDE.md"]
**Alternative options:**
- Set `gpu: modal` in CLAUDE.md to use Modal serverless GPU (no local GPU needed)
- Set `gpu: vast` in CLAUDE.md to rent an on-demand GPU from Vast.ai
- Configure a remote GPU server with `gpu: remote` in CLAUDE.md
I will NOT proceed with running experiments or generating results, as doing so without actual compute resources would produce fabricated output. Please resolve the compute issue and try again.After this message, STOP. Do not continue with any experiment workflow steps.
When compute IS available, print a brief summary and return control:
✅ Compute resources verified:
- Environment: [local / remote / vast.ai / modal]
- GPU: [GPU name, count, free memory]
- Status: Ready for experiments
Proceeding with experiment execution.This skill is called automatically by:
/aris-run-experiment (Step 0, before environment detection)/aris-experiment-bridge (Phase 0, before parsing experiment plan)It can also be called standalone:
/aris-compute-guard
/aris-compute-guard local
/aris-compute-guard remotepython3 not found), treat it as unavailable and report.gpu: modal, the check is lenient — Modal handles GPU allocation automatically. Only fail if Modal CLI is not installed/authenticated.6da7f7c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.