environment-doctor · git:20260805.db8b5a9 · 2026-08-05 · sha256 486cb2c3ba17a49b
environment-doctor git:20260805.db8b5a9B
Immutable. This exact content never changes and is served at /api/v1/blob/486cb2c3ba17a49b.
--- name: environment-doctor description: Checks the health of a Claude Code dev environment (git, Node.js, VS Code + extensions, Docker, claude-mem, other installed plugins) and suggests exact fix commands. when_to_use: Use when the user types "check my setup", "is my install broken", "setup isn't working", or asks why claude/docker/git isn't working. allowed-tools: - Bash(git --version) - Bash(node --version) - Bash(npm --version) - Bash(bun --version) - Bash(code --version) - Bash(code --list-extensions) - Bash(docker --version) - Bash(docker info) - Bash(claude --version) - Bash(claude plugin list) - Bash(claude plugin marketplace list) - Bash(test -d ~/.claude-mem) --- Every check below is read-only and pre-approved in `allowed-tools`, so run them without stopping to ask. Never assume a result — always run the real command. ## 1. Run these checks (via the Bash tool, one at a time) - `git --version` - `node --version` (needs ≥ 18, ≥ 20 recommended since claude-mem requires Node ≥ 20) - `bun --version` (claude-mem's hooks and worker daemon run on Bun — without it claude-mem installs but silently does nothing) - `code --version` - `docker --version` and `docker info` (confirms the engine is actually running, not just installed) - `claude --version` - `test -d ~/.claude-mem` (indicates claude-mem is installed) - `claude plugin list` to see which plugins are installed, and `claude plugin marketplace list` to see which marketplaces are registered - `code --list-extensions` and check for the recommended set: `anthropic.claude-code`, `eamodio.gitlens`, `ms-azuretools.vscode-docker`, `dbaeumer.vscode-eslint`, `esbenp.prettier-vscode` Summarize the results as a ✅/❌ table before suggesting any fixes. ## 2. Fix commands by OS (ask which OS if unknown) **Windows (PowerShell, via winget):** - Missing Git → `winget install --id Git.Git -e` - Missing Node → `winget install --id OpenJS.NodeJS.LTS -e` - Missing Bun → `irm https://bun.sh/install.ps1 | iex` (installs to `%USERPROFILE%\.bun\bin` and only updates the persisted PATH — a terminal that was already open still won't see it) - Missing VS Code → `winget install --id Microsoft.VisualStudioCode -e` - Missing Docker → `winget install --id Docker.DockerDesktop -e`, then note it needs a restart + first manual launch (and `wsl --install` first if WSL2 isn't set up yet) - Missing Claude Code CLI → `irm https://claude.ai/install.ps1 | iex` **macOS (via Homebrew):** - Missing Git/Node/Bun → `brew install git` / `brew install node` / `brew install bun` - Missing VS Code → `brew install --cask visual-studio-code` - Missing Docker → `brew install --cask docker`, then note it needs to be opened manually once - Missing Claude Code CLI → `curl -fsSL https://claude.ai/install.sh | bash` **Both OSes:** - Claude Code CLI installed but not found in the terminal → almost always a PATH-not-refreshed issue; tell the user to close and reopen their terminal first - claude-mem not installed → recommend `npx claude-mem install` (the officially recommended method — it auto-detects Claude Code, no need for the manual `/plugin marketplace add` flow). It does **not** install Bun for you: check Bun first, or claude-mem installs cleanly and then does nothing, logging "Bun runtime not found" from its worker. - Missing VS Code extension → suggest `code --install-extension <id> --force` ## 3. Plugin problems specifically A plugin that "installed fine" but does nothing is nearly always one of these two: - **Installed into the wrong scope.** `--scope project` writes `.claude/settings.json` into the folder it was run from, so the plugin only loads inside that folder. If they ran the bootstrap script from a downloads folder, that's the bug. Check `claude plugin list`, then reinstall with `--scope user` to make it available everywhere. - **The marketplace was never added.** `claude plugin install <name>@<marketplace>` can only resolve `@<marketplace>` if that marketplace is registered. Check `claude plugin marketplace list` first. For plugins from this repo: `claude plugin marketplace add .` (run from the repo root), then `claude plugin install devenv-doctor --scope user`. Note: the CLI command is `claude plugin install` (singular "plugin"); a common typo is `claude plugins install` (plural), which fails. ## 4. Always close with One summary line: "You're ready ✅" or, if not fully passing, how many checks remain and the right order to fix them in (runtimes first, then VS Code extensions, then Docker last since it's the slowest / may need a restart). Don't teach git/Docker theory in this skill — stay focused on "what's broken, how to fix it," not concepts.