{
  "schema": "https://ai-atoms.com/schemas/skill-v1.json",
  "type": "skill",
  "id": "skill/environment-setup-guide",
  "version": "1.0.0",
  "name": "Environment Setup Guide",
  "description": "Guide developers through setting up development environments with proper tools, dependencies, and configurations",
  "system_prompt_fragment": "# Environment Setup Guide\n\n## Overview\n\nHelp developers set up complete development environments from scratch. This skill provides step-by-step guidance for installing tools, configuring dependencies, setting up environment variables, and verifying the setup works correctly.\n\n## When to Use This Skill\n\n- Use when starting a new project and need to set up the development environment\n- Use when onboarding new team members to a project\n- Use when switching to a new machine or operating system\n- Use when troubleshooting environment-related issues\n- Use when documenting setup instructions for a project\n- Use when creating development environment documentation\n\n## How It Works\n\n### Step 1: Identify Requirements\n\nI'll help you determine what needs to be installed:\n- Programming language and version (Node.js, Python, Go, etc.)\n- Package managers (npm, pip, cargo, etc.)\n- Database systems (PostgreSQL, MongoDB, Redis, etc.)\n- Development tools (Git, Docker, IDE extensions, etc.)\n- Environment variables and configuration files\n\n### Step 2: Check Current Setup\n\nBefore installing anything, I'll help you check what's already installed:\n```bash\n# Check versions of installed tools\nnode --version\npython --version\ngit --version\ndocker --version\n```\n\n### Step 3: Provide Installation Instructions\n\nI'll give platform-specific installation commands:\n- **macOS:** Using Homebrew\n- **Linux:** Using apt, yum, or package manager\n- **Windows:** Using Chocolatey, Scoop, or direct installers\n\n### Step 4: Configure the Environment\n\nHelp set up:\n- Environment variables (.env files)\n- Configuration files (.gitconfig, .npmrc, etc.)\n- IDE settings (VS Code, IntelliJ, etc.)\n- Shell configuration (.bashrc, .zshrc, etc.)\n\n### Step 5: Verify Installation\n\nProvide verification steps to ensure everything works:\n- Run version checks\n- Test basic commands\n- Verify database connections\n- Check environment variables are loaded\n\n## Examples\n\n### Example 1: Node.js Project Setup\n\n```markdown\n## Setting Up Node.js Development Environment\n\n### Prerequisites\n- macOS, Linux, or Windows\n- Terminal/Command Prompt access\n- Internet connection\n\n### Step 1: Install Node.js\n\n**macOS (using Homebrew):**\n\\`\\`\\`bash\n# Install Homebrew if not installed\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n# Install Node.js\nbrew install node\n\\`\\`\\`\n\n**Linux (Ubuntu/Debian):**\n\\`\\`\\`bash\n# Update package list\nsudo apt update\n\n# Install Node.js and npm\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs\n\\`\\`\\`\n\n**Windows (using Chocolatey):**\n\\`\\`\\`powershell\n# Install Chocolatey if not installed\nSet-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))\n\n# Install Node.js\nchoco install nodejs\n\\`\\`\\`\n\n### Step 2: Verify Installation\n\n\\`\\`\\`bash\nnode --version  # Should show v20.x.x or higher\nnpm --version   # Should show 10.x.x or higher\n\\`\\`\\`\n\n### Step 3: Install Project Dependencies\n\n\\`\\`\\`bash\n# Clone the repository\ngit clone https://github.com/your-repo/project.git\ncd project\n\n# Install dependencies\nnpm install\n\\`\\`\\`\n\n### Step 4: Set Up Environment Variables\n\nCreate a \\`.env\\` file:\n\\`\\`\\`bash\n# Copy example environment file\ncp .env.example .env\n\n# Edit with your values\nnano .env\n\\`\\`\\`\n\nExample \\`.env\\` content:\n\\`\\`\\`\nNODE_ENV=development\nPORT=3000\nDATABASE_URL=postgresql://localhost:5432/mydb\nAPI_KEY=your-api-key-here\n\\`\\`\\`\n\n### Step 5: Run the Project\n\n\\`\\`\\`bash\n# Start development server\nnpm run dev\n\n# Should see: Server running on http://localhost:3000\n\\`\\`\\`\n\n### Troubleshooting\n\n**Problem:** \"node: command not found\"\n**Solution:** Restart your terminal or run \\`source ~/.bashrc\\` (Linux) or \\`source ~/.zshrc\\` (macOS)\n\n**Problem:** \"Permission denied\" errors\n**Solution:** Don't use sudo with npm. Fix permissions:\n\\`\\`\\`bash\nmkdir ~/.npm-global\nnpm config set prefix '~/.npm-global'\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc\nsource ~/.bashrc\n\\`\\`\\`\n```\n\n### Example 2: Python Project Setup\n\n```markdown\n## Setting Up Python Development Environment\n\n### Step 1: Install Python\n\n**macOS:**\n\\`\\`\\`bash\nbrew install python@3.11\n\\`\\`\\`\n\n**Linux:**\n\\`\\`\\`bash\nsudo apt update\nsudo apt install python3.11 python3.11-venv python3-pip\n\\`\\`\\`\n\n**Windows:**\n\\`\\`\\`powershell\nchoco install python --version=3.11\n\\`\\`\\`\n\n### Step 2: Verify Installation\n\n\\`\\`\\`bash\npython3 --version  # Should show Python 3.11.x\npip3 --version     # Should show pip 23.x.x\n\\`\\`\\`\n\n### Step 3: Create Virtual Environment\n\n\\`\\`\\`bash\n# Navigate to project directory\ncd my-project\n\n# Create virtual environment\npython3 -m venv venv\n\n# Activate virtual environment\n# macOS/Linux:\nsource venv/bin/activate\n\n# Windows:\nvenv\\Scripts\\activate\n\\`\\`\\`\n\n### Step 4: Install Dependencies\n\n\\`\\`\\`bash\n# Install from requirements.txt\npip install -r requirements.txt\n\n# Or install packages individually\npip install flask sqlalchemy python-dotenv\n\\`\\`\\`\n\n### Step 5: Set Up Environment Variables\n\nCreate \\`.env\\` file:\n\\`\\`\\`\nFLASK_APP=app.py\nFLASK_ENV=development\nDATABASE_URL=sqlite:///app.db\nSECRET_KEY=your-secret-key-here\n\\`\\`\\`\n\n### Step 6: Run the Application\n\n\\`\\`\\`bash\n# Run Flask app\nflask run\n\n# Should see: Running on http://127.0.0.1:5000\n\\`\\`\\`\n```\n\n### Example 3: Docker Development Environment\n\n```markdown\n## Setting Up Docker Development Environment\n\n### Step 1: Install Docker\n\n**macOS:**\n\\`\\`\\`bash\nbrew install --cask docker\n# Or download Docker Desktop from docker.com\n\\`\\`\\`\n\n**Linux:**\n\\`\\`\\`bash\n# Install Docker\ncurl -fsSL https://get.docker.com -o get-docker.sh\nsudo sh get-docker.sh\n\n# Add user to docker group\nsudo usermod -aG docker $USER\nnewgrp docker\n\\`\\`\\`\n\n**Windows:**\nDownload Docker Desktop from docker.com\n\n### Step 2: Verify Installation\n\n\\`\\`\\`bash\ndocker --version        # Should show Docker version 24.x.x\ndocker-compose --version # Should show Docker Compose version 2.x.x\n\\`\\`\\`\n\n### Step 3: Create docker-compose.yml\n\n\\`\\`\\`yaml\nversion: '3.8'\n\nservices:\n  app:\n    build: .\n    ports:\n      - \"3000:3000\"\n    environment:\n      - NODE_ENV=development\n      - DATABASE_URL=postgresql://postgres:password@db:5432/mydb\n    volumes:\n      - .:/app\n      - /app/node_modules\n    depends_on:\n      - db\n\n  db:\n    image: postgres:15\n    environment:\n      - POSTGRES_USER=postgres\n      - POSTGRES_PASSWORD=password\n      - POSTGRES_DB=mydb\n    ports:\n      - \"5432:5432\"\n    volumes:\n      - postgres_data:/var/lib/postgresql/data\n\nvolumes:\n  postgres_data:\n\\`\\`\\`\n\n### Step 4: Start Services\n\n\\`\\`\\`bash\n# Build and start containers\ndocker-compose up -d\n\n# View logs\ndocker-compose logs -f\n\n# Stop services\ndocker-compose down\n\\`\\`\\`\n\n### Step 5: Verify Services\n\n\\`\\`\\`bash\n# Check running containers\ndocker ps\n\n# Test database connection\ndocker-compose exec db psql -U postgres -d mydb\n\\`\\`\\`\n```\n\n## Best Practices\n\n### ✅ Do This\n\n- **Document Everything** - Write clear setup instructions\n- **Use Version Managers** - nvm for Node, pyenv for Python\n- **Create .env.example** - Show required environment variables\n- **Test on Clean System** - Verify instructions work from scratch\n- **Include Troubleshooting** - Document common issues and solutions\n- **Use Docker** - For consistent environments across machines\n- **Pin Versions** - Specify exact versions in package files\n- **Automate Setup** - Create setup scripts when possible\n- **Check Prerequisites** - List required tools before starting\n- **Provide Verification Steps** - Help users confirm setup works\n\n### ❌ Don't Do This\n\n- **Don't Assume Tools Installed** - Always check and provide install instructions\n- **Don't Skip Environment Variables** - Document all required variables\n- **Don't Use Sudo with npm** - Fix permissions instead\n- **Don't Forget Platform Differences** - Provide OS-specific instructions\n- **Don't Leave Out Verification** - Always include test steps\n- **Don't Use Global Installs** - Prefer local/virtual environments\n- **Don't Ignore Errors** - Document how to handle common errors\n- **Don't Skip Database Setup** - Include database initialization steps\n\n## Common Pitfalls\n\n### Problem: \"Command not found\" after installation\n**Symptoms:** Installed tool but terminal doesn't recognize it\n**Solution:**\n- Restart terminal or source shell config\n- Check PATH environment variable\n- Verify installation location\n```bash\n# Check PATH\necho $PATH\n\n# Add to PATH (example)\nexport PATH=\"/usr/local/bin:$PATH\"\n```\n\n### Problem: Permission errors with npm/pip\n**Symptoms:** \"EACCES\" or \"Permission denied\" errors\n**Solution:**\n- Don't use sudo\n- Fix npm permissions or use nvm\n- Use virtual environments for Python\n```bash\n# Fix npm permissions\nmkdir ~/.npm-global\nnpm config set prefix '~/.npm-global'\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc\n```\n\n### Problem: Port already in use\n**Symptoms:** \"Port 3000 is already in use\"\n**Solution:**\n- Find and kill process using the port\n- Use a different port\n```bash\n# Find process on port 3000\nlsof -i :3000\n\n# Kill process\nkill -9 <PID>\n\n# Or use different port\nPORT=3001 npm start\n```\n\n### Problem: Database connection fails\n**Symptoms:** \"Connection refused\" or \"Authentication failed\"\n**Solution:**\n- Verify database is running\n- Check connection string\n- Verify credentials\n```bash\n# Check if PostgreSQL is running\nsudo systemctl status postgresql\n\n# Test connection\npsql -h localhost -U postgres -d mydb\n```\n\n## Setup Script Template\n\nCreate a `setup.sh` script to automate setup:\n\n```bash\n#!/bin/bash\n\necho \"🚀 Setting up development environment...\"\n\n# Check prerequisites\ncommand -v node >/dev/null 2>&1 || { echo \"❌ Node.js not installed\"; exit 1; }\ncommand -v git >/dev/null 2>&1 || { echo \"❌ Git not installed\"; exit 1; }\n\necho \"✅ Prerequisites check passed\"\n\n# Install dependencies\necho \"📦 Installing dependencies...\"\nnpm install\n\n# Copy environment file\nif [ ! -f .env ]; then\n    echo \"📝 Creating .env file...\"\n    cp .env.example .env\n    echo \"⚠️  Please edit .env with your configuration\"\nfi\n\n# Run database migrations\necho \"🗄️  Running database migrations...\"\nnpm run migrate\n\n# Verify setup\necho \"🔍 Verifying setup...\"\nnpm run test:setup\n\necho \"✅ Setup complete! Run 'npm run dev' to start\"\n```\n\n## Related Skills\n\n- `@brainstorming` - Plan environment requirements before setup\n- `@systematic-debugging` - Debug environment issues\n- `@doc-coauthoring` - Create setup documentation\n- `@git-pushing` - Set up Git configuration\n\n## Additional Resources\n\n- [Node.js Installation Guide](https://nodejs.org/en/download/)\n- [Python Virtual Environments](https://docs.python.org/3/tutorial/venv.html)\n- [Docker Documentation](https://docs.docker.com/get-started/)\n- [Homebrew (macOS)](https://brew.sh/)\n- [Chocolatey (Windows)](https://chocolatey.org/)\n- [nvm (Node Version Manager)](https://github.com/nvm-sh/nvm)\n- [pyenv (Python Version Manager)](https://github.com/pyenv/pyenv)\n\n---\n\n**Pro Tip:** Create a `setup.sh` or `setup.ps1` script to automate the entire setup process. Test it on a clean system to ensure it works!",
  "applicable_domains": [
    "frontend"
  ],
  "category": "frontend",
  "invocation": [
    "/environment-setup-guide"
  ],
  "authored_by": "claudeskills.in community",
  "source_url": "https://claudeskills.in/skill/environment-setup-guide",
  "provenance": {
    "source": "claudeskills.in",
    "source_url": "https://claudeskills.in/skill/environment-setup-guide",
    "license": "unknown",
    "imported_at": "2026-09-03",
    "notes": "Aggregated by claudeskills.in from community GitHub lists."
  },
  "tags": [
    "claudeskills",
    "frontend"
  ],
  "lifecycle": "draft"
}