Agent skill

Configure Dev Environment

by epam in epam/cloud-pipeline

Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing.

Apache-2.0Auto-check passedDevOps & Cloud

Install Configure Dev Environment

skills CLI
$ npx skills add epam/cloud-pipeline --skill configure-dev-environment -a claude-code

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

GitHub CLI
$ gh skill install epam/cloud-pipeline configure-dev-environment --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/epam/cloud-pipeline.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/configure-dev-environment .claude/skills/configure-dev-environment && 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
configure-dev-environment
GitHub stars
162
Token cost
~3.1k tokens
SKILL.md length
1,774 words
Files
2 (incl. scripts)
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing.

  • Works in 6 steps: Read the record first → Probe → Ask the scope — one question → …
  • DevOps & Cloud work in your project
  • SKILL.md covers 1. Read the record first, 2. Probe, 3. Ask the scope — one question and 4. Install, per scope, plus 2 more sections
  • Runs Shell scripts from its folder; calls gh, pip and bash; needs CP_API_TEST_DB_PASSWORD

What it does

Configure Dev Environment is an agent skill from epam/cloud-pipeline. Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing. Load this before building, testing or running anything in this repository.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/probe-env.sh`).

It sits in DevOps & Cloud. It works with Java and Docker. The repository describes itself as: Cloud agnostic genomics analysis, scientific computation and storage platform. The licence is Apache-2.0.

When your agent uses it

  • DevOps & Cloud work in your project

Example prompts

  • “/configure-dev-environment”

Requirements

  • Python 3
  • Node.js
  • A Bash shell
  • Docker

Workflow steps

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

  1. Read the record first
  2. Probe
  3. Ask the scope — one question
  4. Install, per scope
  5. Record what was decided
  6. Hand back

What it can do on your machine

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

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • gh
    • pip
    • bash
    • npx
    • brew
    • java
    • conda
    • docker
    • node

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

  • Network

    No URLs in SKILL.md. Its commands use gh, pip, npx and docker, 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 these keys or tokens, usually read from environment variables:

    • CP_API_TEST_DB_PASSWORD

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

Context cost

Configure Dev Environment loads about 3.1k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,774 words of instructions outside code blocks.

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

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 passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from epam/cloud-pipeline at commit 5017688, republished under its Apache-2.0 licence (© epam). 1,774 words, ~3,078 tokens.

Download SKILL.mdSave it as .claude/skills/configure-dev-environment/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
configure-dev-environment
description
Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing. Load this before building, testing or running anything in this repository.

Configure the development environment

Scope-driven and incremental. A first run may set up the UI only; a later "install Java please" adds that scope and leaves the rest alone. Never install outside the scope the user picked.

Attended only. Every step here waits on a person — the scope, the version manager, a shell profile edit. Unattended — the implement-task skill defines when — run the probe, report what is missing, and stop. Never install anything on a CI runner: its toolchain belongs to the workflow that defines it, not to an agent.

1. Read the record first

Read .agents/localenv/ before probing, so a repeat run reports the delta instead of re-asking. Absent means first run.

2. Probe

bash
bash .agents/skills/configure-dev-environment/scripts/probe-env.sh

Reports every tool with its version, the available package/version managers, and the platform. Never guess from .agents/localenv/ alone — it records intent and can be stale.

3. Ask the scope — one question

Ask what the user will work on, not what to install. One multi-select, in the areas of the platform they think in — never a series of per-tool questions. The toolchain follows from the answer, so the tool column below is yours to derive, not theirs to choose.

Offer thisIt needsBecause
GUI (web)Node 14client, data-sharing-service/client — Webpack 4/2 + React 15, and Node ≥16 breaks the build
API & services (Java)JDK 8every Spring Boot module; the Gradle 4.10.2 wrapper does not run on JDK 9+
Database / migrationsJDK 8, DockerFlyway runs from api; a local Postgres is easiest as a container
pipe CLI & Python services2.7-era and 3.xpipe-cli, workflows/pipe-common, storage-lifecycle-service, fs-browser, git-reader
Desktop / viewer appsNode 16–18cloud-pipeline-webdav-client (Electron), hcs-image-viewer, fs-browser/fs-browser-client
Documentationmkdocsdocs/
Docker imagesa container runtimedeploy/docker/*
GitHub CLIgh, authenticatedthe only supported way to touch issues, PRs and checks from an agent session

Mark each option with what the probe already found — "GUI (Node 14 missing)", "Docker (ready)" — and say up front which areas are already complete so nobody picks a no-op.

The question budget

After the scope question, ask only where the answer is genuinely the user's and cannot be derived: the Python manager, the Docker runtime, and permission before editing a shell profile. Everything else you decide from the probe and state in the summary. Batch what remains into one round rather than one question per tool, and skip a question outright when the probe already answers it — pyenv installed and no conda is not a choice worth interrupting for.

Node 14 and Node 18 coexist: that is what nvm is for. Do not "upgrade" client to a newer Node.

4. Install, per scope

List everything you are about to install — tool, version, manager, and anything it changes outside the repo — and get one approval for the list. Then install it.

Come back to the user only when something does not match the list: a version that is not available, an install that fails, a shell profile you need to edit, a port already in use. Do not ask twice about a line they already said yes to.

Where a choice below is the user's, put it in the list or in the step-3 questions — never pick a version manager for them.

Node — nvm, plus a committed .nvmrc

Install nvm itself only if absent, and from its own installer — brew's nvm needs manual shell wiring. Reuse a version the probe already lists rather than installing it again.

Write client/.nvmrc containing 14 if it does not exist; that file is committed — mention it as a repo change when handing back.

Java — JDK 8, manager depends on the workstation

Pick by what the probe found, in this order, and say which you chose and why:

  1. SDKMAN present → sdk install java 8.0.<latest>-tem — best when other JDKs are in play.
  2. macOS + Homebrew → brew install --cask temurin@8, then JAVA_HOME=$(/usr/libexec/java_home -v 1.8).
  3. Linux → the distro's temurin-8-jdk / openjdk-8-jdk.
  4. Neither → offer to install SDKMAN, or hand the user the Adoptium download link.

JAVA_HOME must be exported in the user's shell profile — ask before editing it, and record which file you touched. Verify with java -version reporting 1.8 and:

bash
./gradlew --version && ./gradlew :core:compileJava

The wrapper is the only supported entry point. Do not install a standalone gradle.

Database — Postgres, where the repo dictates most of it

The connection is not a choice. api/profiles/dev/application.properties and api/src/test/resources/test-application.properties hardcode port 5432 and the database names; only the test profile's user and password are env-overridable (CP_API_TEST_DB_USER, CP_API_TEST_DB_PASSWORD), and both profiles default to pipeline/pipeline. Read both files — never copy the values from here.

  1. If something already answers 5432, use it — ask before adding a second server. Two servers on that port both start, and the loser's symptom is password authentication failed, so check for a second postmaster before touching credentials.
  2. Otherwise ask: container or native. Match the version the platform deploys — PSG_VERSION in deploy/contents/install/install-config.
  3. Create the role and two databases, one per profile — the dev profile's and the test profile's, named as those files say.

Flyway runs at test startup; there is no Gradle Flyway task, and the migrations are append-only (root AGENTS.md). Verify with one scoped DAO test, never the full :api:test suite:

bash
./gradlew :api:test --tests "com.epam.pipeline.dao.dts.DtsRegistryDaoTest"
Python — per-subproject isolation, manager is the user's choice

Ask: pyenv + venv (interpreters isolated, venv per subproject) or conda/mamba (one env per subproject). Never install into the system Python.

pipe-cli/requirements.txt pins a Python-2.7-era set (click==6.7, boto3==1.6.9). If that subproject is in scope and no 2.7 interpreter exists, say so plainly. The Python 3 subprojects (storage-lifecycle-service, fs-browser, git-reader) are unaffected.

On Apple Silicon, conda-forge has no arm64 build of anything below Python 3.8. A 2.7 or 3.6 env must therefore be osx-64, running under Rosetta 2, with subdir pinned in that env's own .condarc so later conda install calls stay on the same CPU. pyenv often cannot build 2.7 there at all.

Create one env per subproject, named after it, and record the names. A venv inside the repo must be gitignored — check before creating it.

Check each env works before you make the next one.

The dependency lists in these subprojects are old and were written on other machines — git-reader/setup.py is a Linux pip freeze, and some of its pins cannot build on macOS at all. So you will often end up installing an env with a few packages skipped. Importing the package is the only way to find out whether the skipped ones mattered.

Run the subproject's tests where it has a tests/ directory, otherwise just import the package — from the subproject, with PYTHONPATH=. and never pip install -e ., since *.egg-info is not in .gitignore and an editable install drops untracked files into the working tree.

When a package will not install, stop and ask — never skip it quietly. Lay out the options that actually apply on this platform, with what each costs: dropping the package (say which imports would break), a different interpreter or arch, relaxing the pin, skipping the subproject. Whichever the user picks, name every skipped package in .agents/localenv/; an env with holes in it is fine, an undocumented one is not.

Same rule when the tests fail. If the cause is the env, ask before working around it. If the code is already broken, that is a legitimate result: write down which tests failed and why, leave the bug alone, and move on to the next env.

Skipping a subproject is a normal outcome — the Verify step treats a declared skip as correct. What it does not accept is a scope reported as ready when it is not.

Show full SKILL.md (532 more words)Show less
Docs — mkdocs via pipx

mkdocs goes in via pipx, with the theme and plugins docs/mkdocs.yml actually declares — read the file rather than assuming. Verify with mkdocs build from docs/; docs/site is already gitignored. Never run the Gradle buildDoc task.

Docker — ask which runtime

Docker Desktop, colima, or Rancher Desktop — the user's call. If a working daemon already answers docker info, change nothing regardless of which runtime it is.

GitHub CLI — gh, then an interactive auth step

Install gh by cli.github.com's own instructions for the platform, rather than guessing a package name. Then authenticate with the device-code flow, in the background — it blocks until the user finishes in the browser:

bash
gh auth login --hostname github.com --git-protocol https --web

Use those exact flags. Put the one-time code and URL from its output directly in your reply, and wait for the command to finish. A code expires in ~15 minutes; once that lapses, kill it and re-run.

Never pass --with-token or ask the user for a personal access token in chat. Record only the account gh auth status reports — never the token, and never read gh's own credential store (~/.config/gh/hosts.yml).

Playwright MCP — only on request

Only when the user asked to install Playwright MCP; verify-client-live otherwise uses the browser tool the session already has. The server needs Node ≥18 on PATH (its own engines field) — separate from client's pinned Node 14 — so check the ambient default (node --version, outside client/) first.

Ask headed (visible) or headless as the default, and write it — together with a fixed outputDir under gitignored .agents/.temp/ — to .agents/localenv/playwright-mcp-config.json:

json
{
  "browser": {"launchOptions": {"headless": false}},
  "outputDir": "<repo root>/.agents/.temp/.playwright-mcp"
}

Register it outside the repository — the session's own local or user scope, never a committed .mcp.json or any other tracked registration. Confirm before running. Then:

bash
npx -y playwright install chromium

The MCP server only reads that config at its own startup. After a change, say the agent session must be relaunched before it applies.

5. Record what was decided

Write one file per scope under .agents/localenv/ — node.md, java.md, python.md, database.md, gh.md, … Each opens with the same four things, and whatever else that scope needs below them:

  • Scope — which subprojects it serves
  • Manager and versions — exactly what is installed
  • Outside the repo — the shell profile, service or port it touches, or none
  • Verified — the date, and the command that proved it

Update a file in place on a repeat run; do not append a second history section.

README.md is the index, written on first run: that the directory is per-workstation, gitignored and written by this skill, plus a row for every file in it — not only the .md ones. A tool config dropped here without a row is invisible to the next run. The probe prints the directory listing; compare it against the table.

Never record a token, a superuser password, or any credential the repo does not already hardcode.

The directory is already in .gitignore. Verify that, and never commit anything under it.

6. Hand back

What was installed, what was already present and skipped, every choice the user made (so the record can be checked against it), and what remains uninstalled for the scopes not picked. If a tool could not be installed, say which and why — an absent toolchain is a legitimate outcome here, and the Verify step treats a declared skip as correct.

© epam, 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

Files

SKILL.md and 1 other file (scripts) in .agents/skills/configure-dev-environment of epam/cloud-pipeline.

  • SKILL.md
  • scripts/probe-env.sh

Open the folder on GitHubat commit 5017688

Compare with similar skills

Configure Dev Environment 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.

Configure Dev Environment compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Configure Dev Environment this skillepam/cloud-pipeline162—~3.1kAutomated safety check: PassApache-2.0
Docker Jfr Benchmark Loopeclipse-rdf4j/rdf4j420—~945Automated safety check: PassBSD-3-Clause
Opik Local Dev Environmentcomet-ml/opik22k—~734Automated safety check: PassApache-2.0
Pi K8s Deployrodrigorodrigues/microservices-design-patterns188—~1.6kAutomated safety check: PassNone
Qdrant Advisorqdrant/skills253—~1.7kAutomated safety check: PassApache-2.0
Oci Functions Deployoracle/skills872—~4.6kAutomated safety check: PassUPL-1.0

Similar skills

  • Docker Jfr Benchmark Loop

    eclipse-rdf4j/rdf4j

    Run a repeatable RDF4J performance loop against one JMH benchmark in Docker with Linux Java 26 and JFR CPU-time profiling.

    420 GitHub stars~945 tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Starts, rebuilds, and troubleshoots the Opik local dev stack, including an optional Comet Platform integration mode for the Opik team.

    22k GitHub stars~734 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Pi K8s Deploy

    rodrigorodrigues/microservices-design-patterns

    Check Docker Hub for a new :latest image on a managed service and roll it out to the home Pi k8s cluster, the same way authentication-service was deployed on 2026-08-29 (SSH + kubectl rollout…

    188 GitHub stars~1.6k tokensUpdated 19 days ago
    DevOps & CloudAuto-check passed
  • Qdrant Advisor

    qdrant/skills

    Official

    Diagnose, troubleshoot, and advise on any Qdrant deployment by loading the latest official Qdrant skills live from skills.qdrant.tech.

    253 GitHub stars~1.7k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Official

    Build, configure, scaffold, and deploy OCI Functions from a local machine using a dependency-first, Fn-context-guided flow with argv-safe mutation execution, nonce-scoped confirmations, and a…

    872 GitHub stars~4.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Writing Dockerfiles

    ancoleman/ai-design-components

    Writing optimized, secure, multi-stage Dockerfiles with language-specific patterns (Python, Node.js, Go, Rust), BuildKit features, and distroless images.

    526 GitHub stars~3.2k tokensUpdated 10 mo ago
    DevOps & CloudAuto-check: notes

More from epam/cloud-pipeline

All 8 skills in this repo
  • Verify Client Live

    epam/cloud-pipeline

    Open a user-visible client/ change in a browser against a real Cloud Pipeline deployment.

    162 GitHub stars~511 tokensUpdated yesterday
    Auto-check passed
  • Commit Changes

    epam/cloud-pipeline

    Required before you commit, push or open a pull request here, asked or not.

    162 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Modifying Instructions

    epam/cloud-pipeline

    Required before adding or changing anything an agent reads — a convention in AGENTS.md, a procedure as a skill, a pattern-scoped rule.

    162 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check: warnings
  • Plan Change

    epam/cloud-pipeline

    Plan the work before you edit — its phases, the model and effort each takes, and whether it is worth a plan file with a ledger beside it.

    162 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Verify Changes

    epam/cloud-pipeline

    Find and run the checks a change owes, from what it touches and what that can reach.

    162 GitHub stars~748 tokensUpdated yesterday
    Auto-check passed
  • Implement Task

    epam/cloud-pipeline

    Start here before the first edit of any file — a one-liner and a docs change included.

    162 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Configure Dev Environment

What does Configure Dev Environment do?

Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing. Configure Dev Environment is an agent skill from epam/cloud-pipeline. Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing.

When should I use Configure Dev Environment?

Configure Dev Environment fits situations like: devOps & Cloud work in your project.

How do I install Configure Dev Environment in Claude Code?

Run `npx skills add epam/cloud-pipeline --skill configure-dev-environment -a claude-code`. Or copy the skill folder (.agents/skills/configure-dev-environment in epam/cloud-pipeline) into .claude/skills/configure-dev-environment in your project. Claude Code loads it when a task matches its description.

How do I install Configure Dev Environment in Codex?

Run `npx skills add epam/cloud-pipeline --skill configure-dev-environment -a codex`. Or copy the skill folder (.agents/skills/configure-dev-environment in epam/cloud-pipeline) into .agents/skills/configure-dev-environment in your project. Codex loads it when a task matches its description.

Can I use Configure Dev Environment 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 epam/cloud-pipeline --skill configure-dev-environment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/configure-dev-environment, .gemini/skills/configure-dev-environment, .github/skills/configure-dev-environment and .opencode/skills/configure-dev-environment in your project.

What does Configure Dev Environment need to run?

Going by SKILL.md and its folder, Configure Dev Environment needs a shell for the scripts in its folder, the command-line tools its instructions call (gh, pip, bash, npx, brew and java) and credentials named CP_API_TEST_DB_PASSWORD. Our summary lists: Python 3; Node.js; A Bash shell; Docker.

Does Configure Dev Environment access the network?

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

Is Configure Dev Environment safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Configure Dev Environment use?

Configure Dev Environment 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.

How many tokens does Configure Dev Environment use?

About 3.1k tokens (SKILL.md is roughly 12k 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 Configure Dev Environment?

Skills that share tags, products or a category with Configure Dev Environment: Docker Jfr Benchmark Loop (eclipse-rdf4j/rdf4j, 420 stars), Opik Local Dev Environment (comet-ml/opik, 22k stars), Pi K8s Deploy (rodrigorodrigues/microservices-design-patterns, 188 stars) and Qdrant Advisor (qdrant/skills, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Configure Dev Environment?

epam (a GitHub organization) maintains it in epam/cloud-pipeline, which has 162 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

Source: epam/cloud-pipeline on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.