packages/forge/src/skills/env-setup/SKILL.md
Use when a developer needs to set up, fix, or restore a local development environment. Triggers on post-clone setup, project onboarding, first-time running a repo, pulled changes that broke the build, missing or misconfigured dependencies, MODULE_NOT_FOUND or Cannot find module errors, gyp ERR or native module build failures, missing .env files or unknown required environment variables, database setup, Docker compose issues, or connection refused during local dev. Covers Node.js, Python, Rust, Go, Ruby, PHP, and Docker-based projects.
npx skillsauth add adrozdenko/soleri env-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detect what a project needs, diagnose what's missing, and produce an actionable setup checklist.
Scan the project root for configuration files, detect the tech stack and dependencies, identify gaps between what's required and what's present, then generate ordered setup steps. Offer to execute each step.
.env file or environment variablesScan the project root and identify:
| File | Stack | Install Command |
| ------------------ | ------- | ------------------------------------------------------------ |
| package.json | Node.js | npm install / yarn / pnpm install (check for lockfile) |
| requirements.txt | Python | pip install -r requirements.txt |
| pyproject.toml | Python | pip install -e . or poetry install or uv sync |
| Pipfile | Python | pipenv install |
| Cargo.toml | Rust | cargo build |
| go.mod | Go | go mod download |
| Gemfile | Ruby | bundle install |
| composer.json | PHP | composer install |
Lockfile priority: If a lockfile exists (package-lock.json, yarn.lock, pnpm-lock.yaml, Pipfile.lock, poetry.lock), use the matching package manager. Don't mix.
.env.example, .env.sample, .env.template.env — if missing, copy from templateprocess.env., os.environ, env::var, os.Getenv to discover env vars the project actually uses.| Indicator | What It Means |
| ---------------------------------------- | -------------------------------------- |
| better-sqlite3, sqlite3 in deps | Needs C++ compiler |
| node-gyp in deps or scripts | Needs Python 3 + C++ toolchain |
| sharp in deps | Needs libvips |
| Cargo.toml with [build-dependencies] | Needs Rust toolchain for build scripts |
| setup.py with ext_modules | Needs C compiler for Python extensions |
| File/Config | Database | Setup Needed |
| ---------------------------------------- | ---------------- | ---------------------------- |
| docker-compose.yml with postgres/mysql | PostgreSQL/MySQL | Container + migrations |
| prisma/schema.prisma | Prisma-managed | npx prisma migrate dev |
| drizzle.config.* | Drizzle-managed | npx drizzle-kit push |
| alembic.ini | SQLAlchemy | alembic upgrade head |
| config/database.yml | Rails | rails db:create db:migrate |
| File | What It Means |
| --------------------------------------------- | ------------------------------------------- |
| docker-compose.yml | Services to start with docker compose up |
| Dockerfile | Can build container locally |
| Makefile | Check for setup, install, dev targets |
| .tool-versions / .node-version / .nvmrc | Required runtime version |
| turbo.json / nx.json / lerna.json | Monorepo setup |
| File | Integration |
| ------------------------ | ---------------------------- |
| .vscode/ | VS Code settings, extensions |
| .mcp.json / mcp.json | MCP server config |
| .editorconfig | Cross-editor formatting |
After detection, check what's present vs needed:
node_modules/, venv/, vendor/ exist?.env exist when a template does?Produce steps in dependency order:
## Setup Checklist
1. [ ] Install runtime (Node 20.x via nvm)
2. [ ] Install dependencies (pnpm install)
3. [ ] Copy environment file (cp .env.example .env)
4. [ ] Fill in required env vars: DATABASE_URL, API_KEY
5. [ ] Start Docker services (docker compose up -d)
6. [ ] Run database migrations (npx prisma migrate dev)
7. [ ] Build the project (pnpm build)
8. [ ] Start dev server (pnpm dev)
Order matters: runtime -> deps -> env -> infrastructure -> migrations -> build -> run.
After presenting the checklist, offer: "Want me to run these steps for you?"
If the user says yes, execute steps sequentially. Stop and ask if:
If monorepo detected (turbo.json, nx.json, pnpm-workspace.yaml):
npm install when yarn.lock exists. Always check lockfiles first.npm install fails with gyp errors. Check before installing.git pull, always re-install if lockfile changed.testing
Triggers: "terse mode", "be brief", "less tokens", "fewer tokens", "compress output", "caveman", or invokes /terse. Token-efficient responses with full technical accuracy.
tools
Triggers: "compress this file", "compress CLAUDE.md", "compress memory", "shrink this", "reduce tokens in file", or invokes /compress. Compresses natural language files to save input tokens.
testing
Triggers: "release", "bump version", "publish packages", "cut a release", "version bump", "npm publish". Bumps monorepo versions, commits, tags, pushes to trigger CI release. Use deliver-and-ship for quality gates.
development
Triggers: "implement X", "build Y", "fix Z", "add feature", or any work task needing planning + execution. Full orchestration loop: plan, execute, complete with vault context and brain recs.