Agent skill

Fix Env

by evo-design in evo-design/proto-tools

Fixes tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir, patch it, and point PROTO<TOOLKITSTANDALONEDIR at it; works for any…

MITAuto-check: notesAI & LLM Engineering

Install Fix Env

skills CLI
$ npx skills add evo-design/proto-tools --skill fix-env -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install evo-design/proto-tools fix-env --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/evo-design/proto-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fix-env .claude/skills/fix-env && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fix-env
GitHub stars
135
Token cost
~2.5k tokens
SKILL.md length
1,032 words
Files
2
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Fixes tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir, patch it, and point PROTO<TOOLKITSTANDALONEDIR at it; works for any…

  • Works in 7 steps: Read STATUS.txt → Verify Compute Detection (Pre-Flight) → Verify Env Isolation (Pre-Flight) → …
  • A tools setup.sh fails
  • SKILL.md covers Two ways to fix an env, Files you can modify, Common Failure Patterns and Debugging Workflow, plus 2 more sections
  • Calls pytest, python and pip

What it does

Fix Env is an agent skill from evo-design/proto-tools. Fixes tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir, patch it, and point PROTO<TOOLKITSTANDALONEDIR at it; works for any install, including a non-editable pip install) or as a cross-platform fix contributed back to the repo. Same diagnosis for both: infrastructure failures (compute detection, env variable isolation, sitecustomize.py injection, micromamba install), PyTorch/CUDA issues (ABI mismatch, broken symlinks, triton coordination), JAX…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `PATTERNS.md`).

It sits in AI & LLM Engineering, covering Deep learning. It works with CUDA, Python and PyTorch. The repository describes itself as: A universal infrastructure layer for generative biology. The licence is MIT.

When your agent uses it

  • A tools setup.sh fails
  • An env breaks after a system update
  • A standalone venv needs a fix — for your own use

Example prompts

  • “Use the fix-env skill to fix tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir…”
  • “/fix-env”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Read, Write, Bash, Glob, Grep

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Read STATUS.txt
  2. Verify Compute Detection (Pre-Flight)
  3. Verify Env Isolation (Pre-Flight)
  4. Match Error to Pattern
  5. Apply the Fix to setup.sh
  6. Validate the Fix
  7. Document What You Changed

What it can do on your machine

Read from SKILL.md and the folder at commit 64363bd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Bash
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pytest
    • python
    • pip
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip and uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fix Env loads about 2.5k tokens when it runs. Until then it costs about 224 tokens; SKILL.md has 1,032 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~224
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Bash, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from evo-design/proto-tools at commit 64363bd, republished under its MIT licence (© evo-design). 1,032 words, ~2,550 tokens.

Download SKILL.mdSave it as .claude/skills/fix-env/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
fix-env
description
Fixes tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir, patch it, and point PROTO_<TOOLKIT>_STANDALONE_DIR at it; works for any install, including a non-editable pip install) or as a cross-platform fix contributed back to the repo. Same diagnosis for both: infrastructure failures (compute detection, env variable isolation, sitecustomize.py injection, micromamba install), PyTorch/CUDA issues (ABI mismatch, broken symlinks, triton coordination), JAX setup/downgrades, compilation failures (GCC/nvcc mismatch, source builds), network/binary download failures, platform issues (aarch64, Python version), and device management setup failures (standalone helpers, CUDA visibility). Use when a tool's setup.sh fails, an env breaks after a system update, or a standalone venv needs a fix — for your own use or to upstream.
allowed-tools
Read, Write, Bash, Glob, Grep

fix-env

When to use: a tool's environment fails to build or work, and you need to fix it — either just on the current machine, or as a fix the whole project should ship.

Two ways to fix an env

The diagnosis is identical; what differs is where you apply the fix and how compatible it has to be. Decide the mode first; the failure patterns and workflow below apply to both.

Local fix — "I just need this tool working on my machine"

For when you (or a user you're helping) hit a broken env and want it working now, without modifying the installed package. Works for any install, including a non-editable pip install where the packaged files sit in read-only site-packages.

  1. Eject the tool's setup into an editable copy and set the variable it prints:
    bash
    proto-tools eject-standalone <toolkit>          # -> ./proto_standalone/<toolkit>/
    export PROTO_<TOOLKIT>_STANDALONE_DIR=$PWD/proto_standalone/<toolkit>
  2. See the failure live by re-running the tool with PROTO_ENV_VERBOSE=1 (streams setup.sh output to your terminal); diagnose with the patterns below.
  3. Patch the ejected files (setup.sh, etc.) under ./proto_standalone/<toolkit>/.
  4. Rebuild by re-running the tool — with the variable set, the next call builds from your copy under an isolated env name. Iterate until it runs.

Never edit the installed package. Tell the user to export the variable per project (e.g. a direnv .envrc) so it applies only where they want. Reference: "Overriding a tool's standalone env" in notes/tool-environments.md.

Contributed fix — "the packaged setup should change for everyone"

For when you have the repo (editable install) and the fix belongs upstream so every platform benefits.

You will only be testing on the current machine. Assume the existing setup works on other clusters. Make surgical changes to standalone/setup.sh (and other standalone/ files) that fix the current machine while maintaining compatibility with other platforms, using defensive patterns (|| true, conditional checks, graceful fallbacks), then commit them.

Files you can modify

Both modes edit the same files — the ejected copy (local) or the repo copy (contributed):

  • standalone/setup.sh
  • standalone/requirements.txt
  • standalone/env_vars.txt
  • standalone/binary_config.py
  • standalone/python_version.txt
  • standalone/uv_version.txt (optional; only when the build breaks on the pinned uv)

Never modify standalone/run.py, standalone/inference.py, or {toolkit}.py (core implementation).

Common Failure Patterns

CategoryPatternSymptomsSolution
InfraCompute Detection (Pattern 1)Wrong torch installed, No GPU detectedVerify nvidia-smi, check DETECTED_* vars
InfraEnv Var Isolation (Pattern 2)uv installs to wrong env, missing libsCheck CONDA_PREFIX, VIRTUAL_ENV, LD_LIBRARY_PATH
Infrasitecustomize.py (Pattern 3)ctypes.CDLL errors, CC not foundVerify generated file, check lib paths
InfraMicromamba Install (Pattern 4)Failed to download/extract micromambaCheck network, manual install to cache
PyTorchABI Mismatch (Pattern 5)undefined symbol, ImportError: *.soCache clear + --refresh + validate deep imports
PyTorchBroken CUDA Symlinks (Pattern 6)libcudart.so: No such fileAuto-repair symlinks in cuda_env
PyTorchTriton Version (Pattern 7)PY_SSIZE_T_CLEAN crashUpgrade triton AFTER all other installs
JAXVersion Downgrade (Pattern 8)JAX uses CPU on GPU, wrong CUDA pluginRe-apply JAX spec after dependency install
CompileGCC/nvcc Mismatch (Pattern 9)_Float32 undeclared, nvcc errorsMatch GCC to CUDA version, pin sysroot
CompilePlatform Detection (Pattern 10)No CUDA target, not supported on aarch64Platform guards + graceful fallbacks
NetworkGitHub Wheel 404 (Pattern 11)HTTP Error 404/502Switch to PyPI
CompileOOM Source Build (Pattern 12)Killed signal, exit -9Prefer wheels, MAX_JOBS=1
NetworkBinary Download (Pattern 13)Failed after 3 attemptsCheck network, platform support in binary_config.py
PlatformCUDA Headers (Pattern 14)cuda_runtime.h: No such fileConditional symlinks
PlatformPython Version (Pattern 15)No wheel for Python 3.12python_version.txt
Device MgmtStandalone Helpers Import (Pattern 16)ImportError: standalone_helpersVerify source dir exists; check for a stale in-tree copy
Device MgmtCUDA Visibility Mismatch (Pattern 17)No available device, wrong GPUCheck CUDA_VISIBLE_DEVICES vs BIO_TOOLS_MANAGED_DEVICES

For detailed patterns with full bash examples: Read .claude/skills/fix-env/PATTERNS.md

Debugging Workflow

Show full SKILL.md (418 more words)Show less
1. Read STATUS.txt
bash
cat tool_envs/{tool}_env/STATUS.txt

Check for error messages, DETECTED_* var values, and the exit point.

2. Verify Compute Detection (Pre-Flight)
bash
# Check actual hardware
nvidia-smi

# Check what the detection set
python -c "
from proto_tools.utils.compute_deps import detect_compute_environment
env = detect_compute_environment()
for k, v in sorted(env.items()):
    print(f'{k}={v}')
"

If nvidia-smi works but DETECTED_COMPUTE_PLATFORM=cpu, compute detection failed — see Pattern 1. Fix this first — everything downstream (torch, JAX) depends on correct detection.

3. Verify Env Isolation (Pre-Flight)
bash
# Inside a tool subprocess, check critical env vars:
# CONDA_PREFIX and VIRTUAL_ENV should point to tool_envs/{tool}_env
# LD_LIBRARY_PATH should include cuda_env/lib for CUDA JIT tools
# python sys.prefix should match tool env path

If env vars point to the parent conda env instead of the tool env, see Pattern 2. Fix this before pattern-matching — wrong env isolation causes misleading package-not-found errors.

4. Match Error to Pattern

Match the error in STATUS.txt to patterns in the table above. Read the detailed pattern in PATTERNS.md for full debugging steps and bash examples.

5. Apply the Fix to setup.sh

Edit the ejected copy (local fix) or the repo's standalone/setup.sh (contributed fix). For a contributed fix, use defensive patterns (|| true, conditional checks, graceful fallbacks) that fix the current machine without breaking others; a local fix only has to work here.

6. Validate the Fix

Local fix: re-run the tool with PROTO_<TOOLKIT>_STANDALONE_DIR set — the env rebuilds from your patched copy; confirm the tool runs.

Contributed fix: rebuild the packaged env and run the tests:

bash
rm -rf tool_envs/{tool}_env
pytest -k "tool_key" --all -sv
pytest --cpu-only --skip-ci
pytest --gpu-only --all  # if GPU available
7. Document What You Changed

Add comments explaining what, why, and why it's safe for other platforms.

Validation Checklist

  • Root cause identified (not just symptoms)
  • Only standalone/ files modified (never run.py/inference.py)
  • DETECTED_COMPUTE_PLATFORM matches actual hardware
  • CONDA_PREFIX and VIRTUAL_ENV point to tool env path inside subprocess
  • LD_LIBRARY_PATH includes cuda_env/lib for CUDA JIT tools (evo1, evo2, protenix)
  • Uses || true for operations that might fail on some platforms
  • Uses conditional checks (if [ -d ... ]) before filesystem operations
  • Uses 2>/dev/null to suppress expected errors
  • No hardcoded platform-specific paths (uses detection)
  • Comments explain why changes are safe for other platforms
  • Tool environment deleted and rebuilt successfully
  • Tool tests pass on current machine
  • Broader test suite checked for regressions

Reference Documentation

  • Cache management: See "Cache Management for ABI-Sensitive Packages" in notes/tool-environments.md
  • Compute deps: See "Compute Dependency Management" in notes/tool-environments.md for hardware detection
  • GCC/nvcc compat: See "GCC/nvcc Compatibility for CUDA JIT Tools" in notes/tool-environments.md for version mapping
  • Compile-from-source: See "Compile-from-Source Tools" in notes/tool-environments.md for TMalign/USalign pattern
  • Python versions: See "Python Version Specification" in notes/tool-environments.md for python_version.txt
  • uv version: See "uv Version Override" in notes/tool-environments.md for uv_version.txt
  • Binary installation: See "Binary Installation" in notes/tool-environments.md for install_binary.py usage
  • env_vars.txt format: See "env_vars.txt sections" under "Compute Dependency Management" in notes/tool-environments.md
  • Device management: GPU allocation, LRU eviction, and persistence are documented in proto_tools/utils/device_manager.py and proto_tools/utils/tool_instance.py docstrings (auto-generated reference pages); see notes/tool-environments.md for to_device() protocol
  • Standalone helpers: See "Standalone Helpers for CLI Subprocess Device Routing" in notes/tool-environments.md for get_subprocess_device_env()

© evo-design, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/fix-env of evo-design/proto-tools.

  • SKILL.md
  • PATTERNS.md

Open the folder on GitHubat commit 64363bd

Compare with similar skills

Fix Env next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fix Env compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fix Env this skillevo-design/proto-tools135—~2.5kAutomated safety check: NotesMIT
Ako4allTongmingLAIC/AKO4ALL369—~4kAutomated safety check: PassMIT
Paddle Op DevPaddlePaddle/Paddle24k—~1.3kAutomated safety check: PassApache-2.0
Migrate Workflow Ec2 To Osdcpytorch/test-infra113—~2kAutomated safety check: PassCustom licence
Hyperpod Version Checkerawslabs/agent-plugins9151 repos~910Automated safety check: PassApache-2.0
Quark Env Preflightamd/Quark181—~1.4kAutomated safety check: PassMIT

Similar skills

  • Ako4all

    TongmingLAIC/AKO4ALL

    Drive an agentic loop that iteratively optimizes a GPU kernel for maximum speedup.

    369 GitHub stars~4k tokensUpdated 24 days ago
    AI & LLM EngineeringAuto-check passed
  • Paddle Op Dev

    PaddlePaddle/Paddle

    PaddlePaddle (飞桨) C++ 算子开发指南。提供从 YAML 配置、InferMeta 函数、Kernel 实现、Python API 封装、单元测试到编译验证的完整算子开发流程指导。在以下场景使用此 skill:(1) 为 Paddle 框架新增 C++ 算子 (2) 修改或调试已有 Paddle 算子 (3) 编写算子的 YAML…

    24k GitHub stars~1.3k tokensUpdated 9 days ago
    AI & LLM EngineeringAuto-check passed
  • Step-by-step playbook for migrating a pytorch/pytorch .github/workflows/.yml from EC2 to OSDC (ARC) runners — covers both dial-up and 100% opt-in patterns, with the inputs that must be plumbed…

    113 GitHub stars~2k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Hyperpod Version Checker

    awslabs/agent-plugins

    Official

    Check and compare software component versions on SageMaker HyperPod cluster nodes - NVIDIA drivers, CUDA toolkit, cuDNN, NCCL, EFA, AWS OFI NCCL, GDRCopy, MPI, Neuron SDK (Trainium/Inferentia)…

    915 GitHub starsUsed in 1 repo~910 tokens
    AI & LLM EngineeringAuto-check passed
  • Collect and normalize environment facts (OS, Python, GPU, CUDA/ROCm, container state) before Quark installation or PTQ planning.

    181 GitHub stars~1.4k tokensUpdated 11 days ago
    AI & LLM EngineeringAuto-check passed
  • Benchmarks LLM inference and drives GPU kernel optimization with Magpie.

    398 GitHub stars~2.3k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed

More from evo-design/proto-tools

  • Implement Tool

    evo-design/proto-tools

    Implements a new bioinformatics tool wrapper in proto-tools using a parallelized agent pipeline.

    135 GitHub stars~15k tokensUpdated yesterday
    Auto-check: notes

Questions about Fix Env

What does Fix Env do?

Fixes tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir, patch it, and point PROTO<TOOLKITSTANDALONEDIR at it; works for any…. Fix Env is an agent skill from evo-design/proto-tools. Fixes tool environment setup failures in proto-tools, either just for the current machine (eject the tool's standalone dir, patch it, and point PROTO<TOOLKITSTANDALONEDIR at it; works for any install, including a non-editable pip install) or as a cross-platform fix contributed back to the repo.

When should I use Fix Env?

Fix Env fits situations like: A tools setup.sh fails; an env breaks after a system update; A standalone venv needs a fix — for your own use.

How do I install Fix Env in Claude Code?

Run `npx skills add evo-design/proto-tools --skill fix-env -a claude-code`. Or copy the skill folder (.claude/skills/fix-env in evo-design/proto-tools) into .claude/skills/fix-env in your project. Claude Code loads it when a task matches its description.

How do I install Fix Env in Codex?

Run `npx skills add evo-design/proto-tools --skill fix-env -a codex`. Or copy the skill folder (.claude/skills/fix-env in evo-design/proto-tools) into .agents/skills/fix-env in your project. Codex loads it when a task matches its description.

Can I use Fix Env in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add evo-design/proto-tools --skill fix-env -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fix-env, .gemini/skills/fix-env, .github/skills/fix-env and .opencode/skills/fix-env in your project.

What does Fix Env need to run?

Going by SKILL.md and its folder, Fix Env needs the command-line tools its instructions call (pytest, python, pip and uv). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Bash, Glob, Grep.

Does Fix Env access the network?

SKILL.md contains no URLs. Its commands use pip and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Fix Env safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Fix Env use?

Fix Env is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fix Env use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Fix Env?

Skills that share tags, products or a category with Fix Env: Ako4all (TongmingLAIC/AKO4ALL, 369 stars), Paddle Op Dev (PaddlePaddle/Paddle, 24k stars), Migrate Workflow Ec2 To Osdc (pytorch/test-infra, 113 stars) and Hyperpod Version Checker (awslabs/agent-plugins, 915 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fix Env?

evo-design (a GitHub organization) maintains it in evo-design/proto-tools, which has 135 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.

Source: evo-design/proto-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.