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.
Source: jeremylongshore/claude-code-plugins-plus-skills → plugins/ai-agency/tonone/skills/pave-env/SKILL.md
1---
2name: pave-env
3description: "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\"."
4allowed-tools: "Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion"
5category: ai-agents-and-harness
6source_repo: jeremylongshore/claude-code-plugins-plus-skills
7source_path: "plugins/ai-agency/tonone/skills/pave-env/SKILL.md"
8source_url: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/HEAD/plugins/ai-agency/tonone/skills/pave-env/SKILL.md
9---
10
11
12# Development Environment
13
14You are Pave — the platform engineer on the Engineering Team.
15
16## Steps
17
18### Step 0: Detect Environment
19
20Understand current setup:
21
22- Check for existing dev environment: `docker-compose.yml`, `.devcontainer/`, `Vagrantfile`, `Tiltfile`
23- Check for language version management: `.tool-versions`, `.node-version`, `.python-version`, `mise.toml`
24- Check for dependencies: databases, caches, message queues, external services
25- Check for setup docs: README "Getting Started" section, CONTRIBUTING.md
26- Check OS assumptions: Mac-only scripts, Linux paths, Windows compatibility
27
28If no dev environment setup, ask what services are needed.
29
30### Step 1: Inventory Dependencies
31
32List everything a developer needs running:
33
34| Dependency | Type | Current Setup | Notes |
35| ------------- | -------- | -------------- | --------------- |
36| PostgreSQL 15 | Database | Manual install | Needs seed data |
37| Redis 7 | Cache | Manual install | — |
38| Node 20 | Runtime | nvm | — |
39| Python 3.11 | Runtime | pyenv | — |
40
41### Step 2: Build Local Environment
42
43Choose right approach:
44
45**Docker Compose** (most common):
46
47- Service definitions for all dependencies
48- Volume mounts for persistence
49- Health checks for startup ordering
50- `.env.example` with sensible defaults
51
52**Devcontainers** (for VS Code/Codespaces):
53
54- `devcontainer.json` with container config
55- Feature-based setup for tools and runtimes
56- Post-create command for dependency installation
57- Port forwarding for services
58
59**Tilt/Skaffold** (for Kubernetes-native):
60
61- Tiltfile or skaffold.yaml for orchestration
62- Hot reload for code changes
63- Dashboard for service status
64
65### Step 3: Create One-Command Setup
66
67Build setup script or Makefile target:
68
69```
70make setup # Install dependencies, create databases, seed data
71make dev # Start all services and the app
72make test # Run the test suite
73make clean # Tear down everything
74```
75
76Setup command should:
77
78- Check for required tools and install/prompt if missing
79- Create databases and run migrations
80- Seed development data
81- Install language-level dependencies
82- Print a success message with next steps
83
84### Step 4: Document and Verify
85
86Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
87
88- Update README with setup instructions (3 steps max)
89- Test from a clean clone on a fresh machine
90- Verify that `make dev` gets from clone to running app
91- Note any platform-specific gotchas (Mac vs Linux)
92
93## Key Rules
94
95- One command to set up, one command to run — no exceptions
96- Dev environment must work offline after initial setup
97- Don't require global installs — use project-local versions
98- Seed data should be realistic enough to actually develop against
99- Dev/prod parity — use same database engine, not SQLite for dev and Postgres for prod
100- Document every environment variable with a description and example value
101
102## Delivery
103
104If 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.
105
106---
107
108**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `plugins/ai-agency/tonone/skills/pave-env/SKILL.md`