rseng-reproducible-environmentslisted
Install: claude install-skill fdiblen/rseng-agent-skills
# Reproducible software environments
Use this skill when software must behave the same on another machine, a
cluster, a CI runner, or a reviewer's laptop as it does on the author's.
Two complementary tools deliver this: a per-project virtual environment
that isolates the language interpreter and its libraries, and a container
that packages the code together with its entire dependency stack. Reach
for the virtual environment when developing or modifying code in one
language; reach for the container when the environment must travel across
machines, platforms, or pipelines unchanged.
## Pick the right level of isolation
Match the tool to how far the software has to travel and what it depends on:
- Language-specific virtual environment - isolates one interpreter/compiler
version plus library versions for a single project. Default choice while
developing, running, or modifying someone's code in one language.
- Container (Docker, Apptainer/Singularity, Docker Compose) - packages the
whole environment, including non-language system libraries and OS-level
config. Choose when the code must run unchanged across collaborators'
machines, clusters, or cloud, or plug into CI/CD.
- System-level tools (Vagrant, NixOS, Packer) - reproduce a whole machine
image or OS configuration as code. Use when the OS itself is part of what
must be reproduced.
- Workflow environments (Nextflow, Snakemake, Galaxy, CWL/WDL) - manage
reproducible environments for multi-step, multi-tool ana