# Pl Env

PL role sub-skill, environment doctoring.

- Repository: https://github.com/sno-ai/sno-station-skills (860 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add sno-ai/sno-station-skills --skill pl-env -g -a claude-code -y`
Codex: `npx skills add sno-ai/sno-station-skills --skill pl-env -g -a codex -y`
Cursor: `npx skills add sno-ai/sno-station-skills --skill pl-env -g -a cursor -y`
Gemini CLI: `npx skills add sno-ai/sno-station-skills --skill pl-env -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add sno-ai/sno-station-skills`

## Description

PL role sub-skill, environment doctoring. Loaded ONLY by the pl core via its routing table; NEVER auto-load from context, never invoke directly.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# PL · Env, environment self-service

Scripts named below run as `bash "${PL_SKILL_DIR}/scripts/<name>.sh" ...`, where `PL_SKILL_DIR` is the
absolute path of the `pl` skill directory; set it in the same Bash call.

Sub-skill of the PL role. The pl core skill invokes this EXPLICITLY on any
environment doubt: a "not available / missing / down" claim, a restart wish, a
VM/host question, or before opening an evaluation or end-to-end run. Canonical scripts:
the pl skill's `scripts/`. Read the host/VM registry from `${SNO_ROSTER_FILE:-}`;
when unset, report "no roster configured" and continue. The TSV columns are
name, address, kind, purpose, and check; no machine inventory ships with the skill.
Use the repo's documented service-address source when one exists.
Read `${SNO_SECRETS_CMD:-}` for an optional secrets wrapper: one executable path
that accepts a command and its arguments, injects secrets, and preserves its exit status.
When unset, report "no secrets wrapper configured" and continue.
Read `${OPENAI_BASE_URL:-}` for model connectivity; when unset, report
"using the harness's own endpoint" and continue.
**Known environment traps**: read the project's lessons file (`ai-doc/LESSONS.md`) when it exists;
propose additions by card.

## Environment self-service

The environment doctor is software-flavoured: each check below applies when the project uses that
tool (Docker, uv/bun, git, a GPU, a VM roster); a check for a tool the project does not use is
reported as not applicable, never as a failure.

Environment, resource, and startup blockers are yours (and every executor's) to
fix, not to wait on, parking on an environment blocker without attempted
self-service is a protocol violation. Most external stalls are environment-class,
and a large share of those are FALSE blockages built on stale premises. Hence:

The rest: https://github.com/sno-ai/sno-station-skills/blob/HEAD/skills/T-delegation-and-work-orders/pl/skills/pl-env/SKILL.md
