From maverick
Enforces environment management conventions: reproducible local dev, .env discipline, environment parity, and fast developer onboarding. Applied when setting up or reviewing dev environments.
How this skill is triggered — by the user, by Claude, or both
Slash command
/maverick:mav-bp-environment-managementThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Maverick's hard rules for reproducible local development environments and environment-specific configuration.
Maverick's hard rules for reproducible local development environments and environment-specific configuration.
.node-version, .tool-versions, etc.) and container image versions (postgres:16.2, never latest).if (env === "production") is a code smell; one code path, config injected via env vars. Sole exception: a single log-verbosity/error-reporting config check at initialisation..env discipline — .env.example is committed and lists every env var the application reads, each with a description; sensitive values blank, safe defaults provided. .env is gitignored. .env.production never exists locally — production config comes from the deployment platform. Validate required env vars at startup and fail fast.127.0.0.1:5432:5432); include health checks so dependents wait for readiness..env.example format:
DATABASE_URL= # PostgreSQL connection string (e.g., postgres://user:pass@localhost:5432/mydb)
STRIPE_API_KEY= # Stripe secret key (starts with sk_test_ or sk_live_)
LOG_LEVEL=error # error | warn | debug
PORT=3000 # HTTP server port
Check for docs/maverick/skills/environment-management/SKILL.md. If present, read it — it wins on specifics (library, config, conventions). If missing, proceed with these standards and note the gap in your summary.
| Pattern | Issue | Fix |
|---|---|---|
| Hard-coded URLs, ports, or credentials in source code | Environment coupling | Extract to environment variables |
if (env === "production") logic scattered in code | Environment branching | Use configuration values, not environment names |
No .env.example but application reads env vars | Undocumented configuration | Create .env.example with all required vars |
.env file committed to repository | Credential exposure risk | Add to .gitignore, remove from history |
| No version pinning for language runtime | Non-reproducible builds | Add .node-version, .python-version, or equivalent |
docker-compose.yml using latest tags | Non-deterministic services | Pin to specific image versions |
| Setup instructions that require asking a team member | Tribal knowledge dependency | Document all steps in README or CONTRIBUTING.md |
| Database engine differs between dev and production | Environment parity violation | Use the same engine locally via Docker |
| No health checks in Docker Compose services | Startup race conditions | Add health checks and depends_on with condition |
This skill covers local/dev environments only (devcontainers, Docker Compose for local services, .env, version pinning, onboarding). Deployed environments — Terraform, CloudFormation, Kubernetes, cloud provisioning — belong to mav-bp-infrastructure-as-code. When an artifact serves both (e.g., Compose used in local dev and CI), follow both.
npx claudepluginhub thermiteau/maverick --plugin maverickSets up local development environments using Docker Compose, devcontainers, Tilt/Skaffold, and one-command Makefiles for dev/prod parity and easy startup.
Emits a generic Rails development-environment setup runbook covering Docker, environment variables, database, test suite, linters, and IDE. Agent reads config files and flags mismatches but never executes commands or reads secrets.
Writes complete local development environment setup guides for services or projects, covering prerequisites, env vars, dependencies, seeding, running, testing, gotchas, and IDE recommendations.