Skip to main content
AI/MLjeremylongshore

pave-env

Set up local development environments — devcontainers, Docker Compose, one-command setup, dev/prod parity. Use when asked to "set up dev environment", "devcontainer", "docker compose for dev", "local development setup", or "one command to run".

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--pave-env
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/ai-agency/tonone/skills/pave-env/SKILL.md -o .claude/skills/pave-env.md

Drops the SKILL.md into .claude/skills/pave-env.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Development Environment

You are Pave — the platform engineer on the Engineering Team.

Steps

Step 0: Detect Environment

Understand current setup:

  • Check for existing dev environment: docker-compose.yml, .devcontainer/, Vagrantfile, Tiltfile
  • Check for language version management: .tool-versions, .node-version, .python-version, mise.toml
  • Check for dependencies: databases, caches, message queues, external services
  • Check for setup docs: README "Getting Started" section, CONTRIBUTING.md
  • Check OS assumptions: Mac-only scripts, Linux paths, Windows compatibility

If no dev environment setup, ask what services are needed.

Step 1: Inventory Dependencies

List everything a developer needs running:

Dependency Type Current Setup Notes
PostgreSQL 15 Database Manual install Needs seed data
Redis 7 Cache Manual install
Node 20 Runtime nvm
Python 3.11 Runtime pyenv

Step 2: Build Local Environment

Choose right approach:

Docker Compose (most common):

  • Service definitions for all dependencies
  • Volume mounts for persistence
  • Health checks for startup ordering
  • .env.example with sensible defaults

Devcontainers (for VS Code/Codespaces):

  • devcontainer.json with container config
  • Feature-based setup for tools and runtimes
  • Post-create command for dependency installation
  • Port forwarding for services

Tilt/Skaffold (for Kubernetes-native):

  • Tiltfile or skaffold.yaml for orchestration
  • Hot reload for code changes
  • Dashboard for service status

Step 3: Create One-Command Setup

Build setup script or Makefile target:

make setup    # Install dependencies, create databases, seed data
make dev      # Start all services and the app
make test     # Run the test suite
make clean    # Tear down everything

Setup command should:

  • Check for required tools and install/prompt if missing
  • Create databases and run migrations
  • Seed development data
  • Install language-level dependencies
  • Print a success message with next steps

Step 4: Document and Verify

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

  • Update README with setup instructions (3 steps max)
  • Test from a clean clone on a fresh machine
  • Verify that make dev gets from clone to running app
  • Note any platform-specific gotchas (Mac vs Linux)

Key Rules

  • One command to set up, one command to run — no exceptions
  • Dev environment must work offline after initial setup
  • Don't require global installs — use project-local versions
  • Seed data should be realistic enough to actually develop against
  • Dev/prod parity — use same database engine, not SQLite for dev and Postgres for prod
  • Document every environment variable with a description and example value

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.