src/autoskillit/skills_extended/setup-environment/SKILL.md
Pre-flight environment gate for the research recipe. Reads the experiment plan, detects the required environment type, builds a Docker image or creates a host micromamba environment, and emits an env_mode verdict consumed by downstream steps.
npx skillsauth add talont-org/autoskillit setup-environmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pre-flight environment gate for the research recipe. Decouples environment
decisions (Docker vs host-micromamba vs none) from implement-experiment's
inline Docker build. Reads the experiment plan to determine the required
environment type, probes Docker availability, builds a Docker image when
possible, falls back to a host micromamba environment for pure conda-forge
Python deps, and emits an env_mode verdict consumed by downstream steps.
PASS and WARN proceed to decompose_phases; FAIL escalates immediately.
/autoskillit:setup-environment <worktree_path> <experiment_plan>
worktree_path — Absolute path to the shared research worktree (positional).experiment_plan — Absolute path to the experiment plan YAML (positional).setup_environment step between stage_data
and decompose_phasesNEVER:
{{AUTOSKILLIT_TEMP}}/setup-environment/run_in_background: true is prohibited)ALWAYS:
environment.type from the experiment plan firstmodel: "sonnet" for all subagentsRead the experiment plan at experiment_plan. Extract:
environment.type — "standard" or "custom"name: field from the environment.yml embedded section (the conda
environment slug, used as the Docker image tag and micromamba env name)If environment.type is absent or not one of "standard" / "custom", or if the
name: field is missing from the environment.yml section, set
env_mode = unavailable, verdict = FAIL, and proceed directly to Step 7 (write
report) then Step 8 (emit tokens). Do not proceed to Steps 2–6 with an undefined slug.
If environment.type == "standard", no custom environment is needed:
env_mode = none, verdict = PASSRun:
timeout 5 docker info --format '{{.OSType}}' 2>/dev/null
If the command exits 0, Docker is available.
Before staging, verify environment.yml exists in the worktree root. If the file is
absent, set env_mode = unavailable, verdict = FAIL, and proceed directly to Step 7.
Stage the build context under {{AUTOSKILLIT_TEMP}}/setup-environment/build/:
mkdir -p {{AUTOSKILLIT_TEMP}}/setup-environment/build
cp src/autoskillit/assets/research/Dockerfile.template \
{{AUTOSKILLIT_TEMP}}/setup-environment/build/Dockerfile
cp environment.yml \
{{AUTOSKILLIT_TEMP}}/setup-environment/build/{slug}.yaml
The template is at src/autoskillit/assets/research/Dockerfile.template and
uses base image mambaorg/micromamba:1.0-bullseye-slim. Build:
docker build \
--build-arg MAMBA_ENV={slug} \
-t research-{slug} \
{{AUTOSKILLIT_TEMP}}/setup-environment/build
env_mode = docker, verdict = PASS. Proceed to
Step 7 (write report).Parse environment.yml for:
Channels: Only conda-forge and defaults are considered viable. Any
other channel (e.g., bioconda, pytorch) marks the environment as not
viable.
Dependency markers (not viable):
cudatoolkit, cuda-*, nvidia-*bioconductor-*dpkg -l <package> 2>/dev/null returning exit 0, or which <package>
returning a hit in /usr/bin, /usr/sbin, /bin, /sbin)If channels or deps are not viable, proceed to Step 7 with
env_mode = unavailable, verdict = FAIL.
If viable, run:
micromamba create -f environment.yml -n experiment-{slug}
env_mode = micromamba-host, verdict = WARNenv_mode = unavailable, verdict = FAILAlways write the report before emitting tokens, regardless of verdict:
{{AUTOSKILLIT_TEMP}}/setup-environment/env_setup_report_{YYYY-MM-DD_HHMMSS}.md
Report structure:
## Environment Setup Report
**Date:** {timestamp}
**Environment Type:** {standard|custom}
**Verdict:** {PASS|WARN|FAIL}
**env_mode:** {none|docker|micromamba-host|unavailable}
### Docker Probe Result
{available|unavailable} — {reason}
### Build Result (if attempted)
{success|failure} — {output or error}
### Micromamba Viability Assessment (if evaluated)
- Channels: {list}
- Problematic deps: {list or "none"}
- Viability: {viable|not viable} — {reason}
### Micromamba Install Result (if attempted)
{success|failure} — {output or error}
### Rationale
{explanation of final verdict}
Emit structured output tokens as LITERAL PLAIN TEXT with NO markdown
formatting on the token names. Do not wrap token names in **bold**,
*italic*, or any other markdown. The adjudicator performs a regex match
on the exact token name — decorators cause match failure.
env_mode = {none|docker|micromamba-host|unavailable}
env_report = /absolute/path/to/env_setup_report_{YYYY-MM-DD_HHMMSS}.md
verdict = {PASS|WARN|FAIL}
env_mode = none|docker|micromamba-host|unavailable
env_report = /absolute/path/to/{{AUTOSKILLIT_TEMP}}/setup-environment/env_setup_report_{YYYY-MM-DD_HHMMSS}.md
verdict = PASS|WARN|FAIL
development
Generate YAML recipes for .autoskillit/recipes/. Use when user says "make script skill", "generate script", "script a workflow", "write a script", "create a script", "new recipe", "write a pipeline", or when loaded by other skills for script formatting.
data-ai
Create Uncertainty Representation visualization planning spec showing error bar definitions, distribution-aware alternatives, and multi-seed variance protocols. Statistical lens answering "How is uncertainty honestly represented?"
data-ai
Create Temporal Dynamics visualization planning spec showing axis scaling (linear vs log), smoothing disclosure, epoch/step alignment, run aggregation (mean + variance bands), early-stopping markers, and wall-clock vs step-count x-axis. Temporal lens answering "Are training dynamics shown clearly and honestly?"
data-ai
Create Narrative Story Arc visualization planning spec showing visual consistency across the report (same color = same model everywhere), logical figure progression, redundant figure detection, and narrative dependency between figures. Narrative lens answering "Do the figures tell a coherent story across the report?"