Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
Test that requirements/install.sh works for an embodied model/env by building its venv and running the matching CI e2e test.
$ npx skills add RLinf/RLinf --skill test-install -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install RLinf/RLinf test-install --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/test-install .claude/skills/test-install && rm -rf skills-srcUse ~/.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/
Install the "test-install" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-install into .claude/skills/test-install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-install", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-installType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add RLinf/RLinf --skill test-install -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install RLinf/RLinf test-install --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/test-install .agents/skills/test-install && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-install" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-install into .agents/skills/test-install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-install", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add RLinf/RLinf --skill test-install -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install RLinf/RLinf test-install --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/test-install .cursor/skills/test-install && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "test-install" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-install into .cursor/skills/test-install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-install", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/RLinf/RLinf.git --path .agents/skills/test-install--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add RLinf/RLinf --skill test-install -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install RLinf/RLinf test-install --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/test-install .gemini/skills/test-install && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "test-install" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-install into .gemini/skills/test-install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-install", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install RLinf/RLinf test-installInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add RLinf/RLinf --skill test-install -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/test-install .github/skills/test-install && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "test-install" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-install into .github/skills/test-install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-install", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add RLinf/RLinf --skill test-install -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install RLinf/RLinf test-install --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/test-install .opencode/skills/test-install && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "test-install" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/test-install into .opencode/skills/test-install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-install", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
test-installTest that requirements/install.sh works for an embodied model/env by building its venv and running the matching CI e2e test.
Test Install is an agent skill from RLinf/RLinf. Test that requirements/install.sh works for an embodied model/env by building its venv and running the matching CI e2e test. Use when asked to test or verify an install, check a new model/env installs cleanly, run the e2e test for a model/env, confirm a venv works, or check that the model/checkpoint paths referenced by an e2e config actually exist on disk.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `driver.py`).
It sits in Testing & QA, covering End-to-end testing. The repository describes itself as: RLinf: Reinforcement Learning Infrastructure for Embodied and Agentic AI. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit c70606f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3uvgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gh-proxy.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Test Install loads about 2.3k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 965 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from RLinf/RLinf at commit c70606f, republished under its Apache-2.0 licence (© RLinf). 965 words, ~2,322 tokens.
.claude/skills/test-install/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Verify that requirements/install.sh actually works for an embodied model/env:
build its venv, confirm the e2e config's model paths exist, then run the matching
CI e2e test against that venv. The harness is
.agents/skills/test-install/driver.py —
it reads the install command, env vars, and test config straight out of
.github/workflows/embodied-e2e-tests.yml,
so it never drifts from CI. Drive everything through that script.
All paths below are relative to the repo root (the dir with requirements/install.sh).
This runs on the embodied CI runner (or an equivalent box): NVIDIA GPUs, the
shared /workspace/dataset/ tree (models, LIBERO, etc.), uv, and a python3
that has PyYAML. No apt-get needed — the driver only orchestrates. Quick check:
nvidia-smi -L | head -1
ls -d /workspace/dataset >/dev/null && python3 -c "import yaml" && echo "env OK"If python3 lacks PyYAML, the driver auto-reexecs under uv run --with pyyaml,
so it works regardless.
The driver has seven subcommands. Start with the read-only ones (list,
resolve, check-paths) — they're instant and tell you exactly what CI does
before you spend an hour on an install.
# What model/env combos does CI cover, and which configs do they run?
python3 .agents/skills/test-install/driver.py list
# Show the exact install command + env vars + test configs for one combo:
python3 .agents/skills/test-install/driver.py resolve gr00t_n1d6 maniskill_libero
# Do the model/checkpoint paths an e2e config needs actually exist on disk?
python3 .agents/skills/test-install/driver.py check-paths libero_spatial_ppo_gr00t_n1d6
# Same check across every e2e config at once (great pre-flight / PR check):
python3 .agents/skills/test-install/driver.py check-allcheck-paths classifies every absolute path in the config: [model/input]
(must exist — a missing one fails the run before training and returns exit 1),
[output dir] (created by the run, may be missing), [path] (informational).
run does install → check-paths (per config) → test, stopping a test whose
required model paths are missing. Always preview with --dry-run first — it
prints the exact shell (install line + CI test step) without executing:
python3 .agents/skills/test-install/driver.py run gr00t_n1d6 maniskill_libero \
--venv /workspace/test-venvs/gr00t_n1d6 --dry-runDrop --dry-run to actually build and test. Or drive the two halves separately
(faster iteration — install once, test many):
# Preview the install (env vars + install.sh line, with --venv and --use-mirror
# injected). Drop --dry-run to build the venv; add --no-mirror to skip mirrors:
python3 .agents/skills/test-install/driver.py install gr00t_n1d6 maniskill_libero \
--venv /workspace/test-venvs/gr00t_n1d6 --dry-run
# Run the matching e2e test against any venv (verbatim CI test step, venv path
# swapped in). This one is cheap — dummy SAC, 2 epochs — so run it for real:
python3 .agents/skills/test-install/driver.py test realworld_dummy_sac_cnn \
--venv /opt/venv/openvlaA full model install (e.g. gr00t_n1d6) is heavy — it clones repos and builds
flash-attn — so preview with --dry-run, then run it where you can afford the
time. The dummy-SAC test above completes in a few minutes against the prebuilt
/opt/venv/openvla.
A real test run spins up Ray, the env/rollout/policy workers, and trains for the
config's (deliberately tiny) epoch count. The dummy-SAC smoke above finishes in a
few minutes and writes TensorBoard output under the config's log_path
(/workspace/results/<config>/tensorboard/) — that directory appearing with
fresh files is your "it worked" signal.
A test venv is heavy (e.g. gr00t_n1d6 is ~600M) and is throwaway — it exists
only to prove the install + e2e work. After the test finishes, rm -rf the
--venv path you built unless the user asked to keep it for reuse:
rm -rf /workspace/test-venvs/<model>Don't touch the shared caches (/workspace/dataset/.uv, .uv_cache) or the
prebuilt /opt/venv/* — only the per-test venv you created. Cleaning up keeps
/workspace/test-venvs/ from accumulating stale multi-hundred-MB trees across
runs. (Cleanup is for the venv only; the /workspace/results/<config>/ outputs
are your proof the test ran — leave them or mention them.)
If a model/env has an install but no e2e job in the workflow, run installs
and then tells you there's nothing to run — ask the user what to run rather
than guessing. If you have a config name that isn't wired into CI, test <config> --runner run|run_async|run_offline runs it directly (pick the runner;
run is the default).
When someone adds install_<model>_model() + an e2e job (see the
add-install-docker-ci-e2e and install-check skills), confirm it end to end:
# 1. CI parsed it correctly and the install command looks right:
python3 .agents/skills/test-install/driver.py resolve <model> <env>
# 2. The SFT checkpoint the e2e config points at is actually on this box:
python3 .agents/skills/test-install/driver.py check-paths <its_config>
# 3. Full build + test (preview with --dry-run, then drop it to run for real):
python3 .agents/skills/test-install/driver.py run <model> <env> \
--venv /workspace/test-venvs/<model> --dry-runIf step 2 reports MISS [model/input], the install can be perfect and the e2e
will still fail — the dataset/checkpoint just isn't staged on this runner. Surface
that to the user; it's not an install bug.
install/run need --venv <path> — it's injected as install.sh --venv.
Use an absolute path (e.g. /workspace/test-venvs/<model>); a bare name lands
relative to the repo root. The test step then sources <path>/bin/activate.--venv reuses an existing venv if one is already at that path (install.sh
validates the Python version and reuses it). For a truly clean install, point at
a fresh path or rm -rf it first.export UV_PATH=/workspace/dataset/.uv
etc. That's intentional — it reproduces CI exactly. It also means the install
writes into the shared uv cache, same as CI.--use-mirror is added to every install by default (faster downloads),
even for CI jobs that don't list it. Pass --no-mirror to install/run to
turn it off. It's never duplicated if the CI job already has it.--platform amd/ascend (ROCm/Ascend runners) — resolve
shows the platform; those won't install on an NVIDIA box.cp .../maniskill_assets/assets
into the repo, or export ROBOT_PLATFORM=ALOHA). The driver replays the whole
CI test step, so those are included automatically — but they assume the asset
dirs exist under /workspace/dataset/.list (e.g. d4rl_iql_mujoco,d4rl_iql_mujoco) just
means the job runs that config twice with different flags (FSDP on/off). Normal.No CI job for model=… env=… — that combo isn't in the workflow. Run
list to see valid pairs; the model/env strings must match --model/--env
in install.sh exactly (maniskill_libero, not libero).AttributeError: 'MessageFactory' object has no attribute 'GetPrototype' in
a test run — benign protobuf/TF-on-import noise from the workers, not a failure.
Look for the Ray Placement(...) lines and the rollout progress bar to confirm
real progress.error: run this from inside the RLinf repo — cd to the repo root (the
dir containing requirements/install.sh) before invoking the driver.&;
the launcher returns 0 while training detaches. Run it in the foreground, or
wait on the real train_embodied_agent.py pid.install hangs at uv sync with ~0 CPU and no .uv_cache writes — almost
always a dead http(s)_proxy env var on the box (e.g. a local
127.0.0.1:10809 that isn't forwarding), leaving idle ESTABLISHED :443
connections. unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY before running the install. Not an install.sh bug.setup_mirror fails: cannot overwrite multiple values ... insteadOf —
prior interrupted runs left duplicate url.<mirror>.insteadOf entries in the
global git config. Clear them with
git config --global --unset-all url."https://gh-proxy.com/github.com/".insteadOf
then retry. Also environmental, not an install.sh bug.© RLinf, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/test-install of RLinf/RLinf.
Open the folder on GitHubat commit c70606f
Test Install 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Test Install this skillRLinf/RLinf | 5.4k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| Uloop Replay Inputkurotu/VRCQuestTools | 373 | 3 repos | ~615 | Automated safety check: Pass | MIT | |
| Ui4 Convert Testspayloadcms/payload | 45k | — | ~3.5k | Automated safety check: Pass | MIT | |
| E2Estackia/rtp2httpd | 2.2k | — | ~517 | Automated safety check: Pass | GPL-2.0 |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
kurotu/VRCQuestTools
Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.
payloadcms/payload
A skill your agent uses when UI changes are complete and e2e tests need updating.
stackia/rtp2httpd
Write, run, review, or debug rtp2httpd E2E tests and their harness in e2e/ and scripts/run-e2e.sh.
MotherofallVPNs/MoaV
Run and debug MoaV's end-to-end tests — real protocol connectivity (client-test.sh) and the moav CLI smoke test — against a LIVE server, via the self-hosted e2e workflow or a local test VPS.
RLinf/RLinf
Adds example documentation for a new model or environment in RLinf (RST pages in the docs gallery for both English and Chinese).
RLinf/RLinf
Adds a new publication page to the RLinf Sphinx docs (EN + ZH) and wires it into the Publications index/toctree.
RLinf/RLinf
Open a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints…
RLinf/RLinf
Cross-check RLinf documentation against code, natural explanation flow, and other docs, including English-Chinese parity.
RLinf/RLinf
Check, fix, or extend requirements/install.sh and its docker/Dockerfile coverage when adding a new embodied model or environment in RLinf, so the install logic reuses common utilities, keeps system…
RLinf/RLinf
Adds install command in install script, Docker build stage in Dockerfile, and CI jobs for docker build and embodied e2e test when introducing a new model or environment in RLinf.
Categories
Test that requirements/install.sh works for an embodied model/env by building its venv and running the matching CI e2e test. Test Install is an agent skill from RLinf/RLinf.sh works for an embodied model/env by building its venv and running the matching CI e2e test.
Test Install fits situations like: verify an install; check a new model/env installs cleanly; run the e2e test for a model/env; confirm a venv works.
Run `npx skills add RLinf/RLinf --skill test-install -a claude-code`. Or copy the skill folder (.agents/skills/test-install in RLinf/RLinf) into .claude/skills/test-install in your project. Claude Code loads it when a task matches its description.
Run `npx skills add RLinf/RLinf --skill test-install -a codex`. Or copy the skill folder (.agents/skills/test-install in RLinf/RLinf) into .agents/skills/test-install in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add RLinf/RLinf --skill test-install -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-install, .gemini/skills/test-install, .github/skills/test-install and .opencode/skills/test-install in your project.
Going by SKILL.md and its folder, Test Install needs Python for the scripts in its folder and the command-line tools its instructions call (python3, uv and git). Our summary lists: Python 3; Docker.
SKILL.md names 1 domain. In commands or code: gh-proxy.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Test Install is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Test Install: Web Application Testing (anthropics/skills, 180k stars), TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars), Uloop Replay Input (kurotu/VRCQuestTools, 373 stars) and Ui4 Convert Tests (payloadcms/payload, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
RLinf (a GitHub organization) maintains it in RLinf/RLinf, which has 5,447 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 2, 2026.
Source: RLinf/RLinf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.