Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
akillness avatar

System Environment Setup

  • 22 installs
  • 40 repo stars
  • Updated August 4, 2026
  • akillness/skills-template

System & Environment Setup is a skill that builds reproducible developer environments using toolchain pinning, Docker Compose, devcontainers and bootstrap scripts.

About

A skill for building reproducible developer environments so a repo runs consistently across machines and containers. It covers runtime version pinning, Docker Compose, devcontainers, bootstrap scripts and onboarding flows. It routes narrow .env and app-config work to a separate environment-setup skill. Developers use it when a project is broken on a new machine or when local setup has drifted from the docs.

  • Makes a repo runnable and repeatable across machines and containers
  • Chooses between host-native, Docker Compose, devcontainers and hybrid
  • Uses a YAML environment_intake to classify the setup surface

System Environment Setup by the numbers

  • 22 all-time installs (skills.sh)
  • Ranked #903 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

system-environment-setup capabilities & compatibility

Capabilities
devops · ci cd
Works with
docker
Use cases
devops · ci cd
From the docs

What system-environment-setup says it does

The job is to make a project **runnable and repeatable** across developer machines and environments.
SKILL.md
Use **Docker Compose** when supporting services or shared local topology matter.
SKILL.md
npx skills add https://github.com/akillness/skills-template --skill system-environment-setup

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs22
repo stars40
Last updatedAugust 4, 2026
Repositoryakillness/skills-template

What it does

Make a repo runnable on a fresh machine with consistent tooling, containers and local services.

Who is it for?

Standardizing local dev setup across contributors and diagnosing environment drift

Skip if: App-level .env structure and env schema validation, which route to environment-setup

When should I use this skill?

A repo must run consistently across machines, containers or staged environments

By the numbers

  • 5 primary operating modes

Files

SKILL.mdMarkdownGitHub ↗

System & Environment Setup

Use this skill as the repository's canonical broader environment-setup anchor.

The job is to make a project runnable and repeatable across developer machines and environments. That usually includes some mix of:

  • runtime/tool version pinning,
  • local services and containers,
  • bootstrapping scripts,
  • onboarding steps,
  • local-prod parity tradeoffs,
  • secrets/config handoff boundaries,
  • setup diagnosis when automation drifts.

Read references/operating-modes.md and references/scope-boundaries.md before unusual cases or when deciding whether the task belongs here or in environment-setup.

If the user mainly needs:

  • `.env` structure, env precedence, validation, or framework-specific app config → route to environment-setup
  • CI/CD pipelines and hosted deployment automation → route to deployment-automation or vercel-deploy
  • security policy and secret-store architecture → pair with security-best-practices
  • project slicing / onboarding checklist ownership → pair with task-planning

When to use this skill

  • Make a repo runnable on a fresh machine with consistent tooling
  • Standardize local dev setup across multiple contributors
  • Choose between local-host, Docker Compose, devcontainers, or hybrid workflows
  • Pin runtime/tool versions and reduce cross-machine drift
  • Set up local supporting services like databases, caches, queues, or search
  • Design bootstrap commands, setup checks, or onboarding flows
  • Diagnose why local setup docs, scripts, containers, and actual runtime behavior have drifted apart
  • Improve local parity without pretending local and production are identical

When not to use this skill

  • The main task is app-level .env organization, env schema validation, or framework env rules → use environment-setup
  • The main task is production deployment, cloud rollout, or CI orchestration → use deployment-automation
  • The main task is hosted infrastructure security review → pair with security-best-practices
  • The task is just one package install with no broader environment decision surface → use a narrower install/setup skill when available

Instructions

Step 1: Classify the setup surface

Normalize the request into this intake first:

environment_intake:
  primary_goal: runnable-local-repo | standardized-onboarding | local-service-parity | toolchain-reproducibility | setup-diagnosis | hybrid
  current_state: greenfield | partially-working | drifted | broken-on-new-machine | unknown
  runtime_shape: single-service | app-plus-services | microservices | unknown
  host_strategy: host-native | docker-compose | devcontainer | hosted-remote-dev | hybrid | unknown
  config_strategy: simple-env-files | typed-validation | secret-manager-injection | mixed | unknown
  main_pain:
    - missing-prereqs
    - runtime-version-drift
    - local-service-startup
    - secrets-bootstrap
    - onboarding-doc-rot
    - cross-platform-differences
    - local-prod-parity
    - unclear
  confidence: high | medium | low

If the request is ambiguous, prefer the broadest runnable repo interpretation and state the assumption.

Step 2: Choose one primary operating mode

Pick exactly one mode for the run:

1. bootstrap-and-onboarding

  • Use when the repo needs a clean first-run path for contributors.

2. toolchain-reproducibility

  • Use when runtimes, CLIs, or package versions drift between machines.

3. local-services-and-parity

  • Use when local DB/cache/queue/search or app-plus-service topology is the main challenge.

4. containerized-dev-environment

  • Use when Docker Compose, devcontainers, or Codespaces-style flows are the main lever.

5. setup-diagnosis-and-hardening

  • Use when scripts, docs, containers, and actual behavior have drifted apart.

Step 3: Pick the smallest reproducibility stack that solves the problem

Use these rules:

  • Prefer the smallest stack that makes the repo reliably runnable.
  • Use runtime/version pinning before introducing heavier containers if the repo is simple.
  • Use Docker Compose when supporting services or shared local topology matter.
  • Use devcontainers when editor/runtime standardization and onboarding speed matter more than host-native ergonomics.
  • Keep bootstrap scripts / Makefiles / task runners as glue, not the only source of truth.
  • Do not pretend local equals production; name the remaining parity gaps explicitly.
  • Route app-level env file design and validation details to environment-setup instead of bloating this skill.

Step 4: Build the environment plan

Return this exact structure:

# Environment Setup Brief

## Recommended mode
- Mode: bootstrap-and-onboarding | toolchain-reproducibility | local-services-and-parity | containerized-dev-environment | setup-diagnosis-and-hardening
- Why this mode fits: ...

## Current setup surface
- Project shape: ...
- Host/container strategy: ...
- Config/secrets strategy: ...
- Main drift or blocker: ...
- Confidence: high | medium | low

## Recommended environment stack
1. ...
2. ...
3. ...

## Commands / files to create or verify

...


## Why this is the right level of setup
- ...
- ...

## Parity gaps to acknowledge
- ...
- ...

## Watch-outs
- ...
- ...

## Adjacent handoff
- Use `environment-setup` for ...
- Use `deployment-automation` for ...
- Use `security-best-practices` for ...

Step 5: Apply mode-specific guidance

For bootstrap-and-onboarding

  • Define the one clean happy path first.
  • Separate prerequisites, secrets/bootstrap, and verification steps.
  • Prefer a setup check (make doctor, bin/setup --check, etc.) when possible.

For toolchain-reproducibility

  • Pin runtime versions explicitly.
  • Choose one version-management layer per repo when possible.
  • Call out cross-platform differences instead of hiding them.

For local-services-and-parity

  • Name which services must run locally and which can stay remote.
  • Prefer Docker Compose for shared service topology.
  • Explain the local-prod gap instead of overselling parity.

For containerized-dev-environment

  • Decide whether Compose, devcontainers, or both are necessary.
  • Keep secrets/bootstrap out of committed container config unless clearly safe.
  • State the editor or platform assumptions.

For setup-diagnosis-and-hardening

  • Compare docs, bootstrap scripts, env templates, container files, and actual commands.
  • Identify which artifact is authoritative.
  • Reduce duplicate instructions and make verification explicit.

Step 6: Keep boundaries sharp

Before finalizing:

  • Do not bury .env / env validation details here when the real need belongs in environment-setup.
  • Do not turn setup guidance into a cloud deployment tutorial.
  • Do not claim total parity if auth, secrets, or platform quirks remain manual.
  • Do not let bootstrap scripts become unexplained magic.

Examples

Example 1: Fresh repo onboarding

Input: "Set up this repo so a new developer can run it locally with the right Node version, Postgres, and Redis." Output: chooses bootstrap-and-onboarding, recommends pinned runtime versions plus Compose for local services, and adds a verification path.

Example 2: Containerized local standardization

Input: "Our team wants a devcontainer because everybody's local machine is different." Output: chooses containerized-dev-environment, names which tooling should move into the container, and routes env-file details to environment-setup.

Example 3: Drift diagnosis

Input: "The README says one thing, Docker says another, and new hires still can't run the app." Output: chooses setup-diagnosis-and-hardening, compares setup artifacts, and identifies the authoritative source plus cleanup steps.

Best practices

1. Optimize for a runnable repo, not maximal tooling sophistication. 2. Pick one canonical reproducibility story and make alternatives explicit. 3. Keep secrets/config guidance connected but not conflated with machine/runtime setup. 4. Add a verification step so onboarding is testable. 5. Name parity gaps instead of pretending containers solve everything. 6. Route narrower app-config questions to environment-setup.

References

Related skills

FAQ

When should I use Docker Compose versus a devcontainer?

Use Docker Compose when supporting services or shared local topology matter; use devcontainers when editor/runtime standardization and onboarding speed matter more than host-native ergonomics.

Does this handle .env files?

No. App-level .env structure and validation route to the separate environment-setup skill.

DevOps & CI/CDinfradeploy

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.