Check Tools - Development Environment Validator
Reports which development tools are installed and at what version, grouped by
ecosystem. Default behavior reports every tool without failing validation —
suited to diverse PaaS/container environments where only a subset of
ecosystems is expected to be present.
When to use
- Verifying a container or environment has the tools a task needs
- Troubleshooting a build failure that might be a missing dependency
- Documenting system requirements
- Onboarding: confirming a dev environment is ready
Running it
# Fast check with exit code (0 = all required core tools present)
bash assets/check-tools.sh
# Development tools only
bash assets/environment-diagnostic.sh tools
# System info: hardware, mounts, processes
bash assets/environment-diagnostic.sh system
# Complete diagnostic (tools + system + package inventories), written to a file
bash assets/environment-diagnostic.sh full /path/to/report.txt
check-tools.sh exits non-zero only when a required core tool (python3,
pip, node, npm, java, gcc, git, curl, awk, grep, gzip, tar, make, sed) is
missing. Every other tool is reported (✅ found / ⚠️ optional and missing) but
does not fail the run.
Required vs. optional, by ecosystem
| Ecosystem |
Required |
Optional |
| Python |
python3, pip |
python, uv, poetry, black, mypy, pytest, ruff |
| Node.js |
node, npm |
nvm, yarn, pnpm, eslint, prettier, chromedriver |
| Java |
java |
mvn, gradle |
| Go |
— |
go |
| Rust |
— |
rustc, cargo |
| C/C++ |
gcc |
clang, cmake, ninja, conan |
| Utilities |
git, curl, awk, sed, grep, gzip, tar, make |
jq, rg, tmux, yq, vim, nano |
Full per-tool version-check commands and installation notes live in
references/tool-categories.md.
Files
assets/check-tools.sh — fast validation script (exit codes, quick checks)
assets/environment-diagnostic.sh — comprehensive diagnostic with
tools / system / full modes
references/tool-categories.md — detailed per-tool breakdown and
installation instructions
Extending
The required/optional split lives in assets/check-tools.sh
(check_required_tool / check_optional_tool calls), not in this file — to
change which tools are required, edit the script.
1---2name: check-tools3description: Validates development tool installations across Python, Node.js, Java, Go, Rust, C/C++, Git, and system utilities. Use when verifying environments or troubleshooting dependencies.4---56# Check Tools - Development Environment Validator78Reports which development tools are installed and at what version, grouped by9ecosystem. Default behavior reports every tool without failing validation —10suited to diverse PaaS/container environments where only a subset of11ecosystems is expected to be present.1213## When to use1415- Verifying a container or environment has the tools a task needs16- Troubleshooting a build failure that might be a missing dependency17- Documenting system requirements18- Onboarding: confirming a dev environment is ready1920## Running it2122```bash23# Fast check with exit code (0 = all required core tools present)24bash assets/check-tools.sh2526# Development tools only27bash assets/environment-diagnostic.sh tools2829# System info: hardware, mounts, processes30bash assets/environment-diagnostic.sh system3132# Complete diagnostic (tools + system + package inventories), written to a file33bash assets/environment-diagnostic.sh full /path/to/report.txt34```3536`check-tools.sh` exits non-zero only when a **required** core tool (python3,37pip, node, npm, java, gcc, git, curl, awk, grep, gzip, tar, make, sed) is38missing. Every other tool is reported (✅ found / ⚠️ optional and missing) but39does not fail the run.4041## Required vs. optional, by ecosystem4243| Ecosystem | Required | Optional |44|-----------|----------|----------|45| Python | python3, pip | python, uv, poetry, black, mypy, pytest, ruff |46| Node.js | node, npm | nvm, yarn, pnpm, eslint, prettier, chromedriver |47| Java | java | mvn, gradle |48| Go | — | go |49| Rust | — | rustc, cargo |50| C/C++ | gcc | clang, cmake, ninja, conan |51| Utilities | git, curl, awk, sed, grep, gzip, tar, make | jq, rg, tmux, yq, vim, nano |5253Full per-tool version-check commands and installation notes live in54`references/tool-categories.md`.5556## Files5758- `assets/check-tools.sh` — fast validation script (exit codes, quick checks)59- `assets/environment-diagnostic.sh` — comprehensive diagnostic with60 `tools` / `system` / `full` modes61- `references/tool-categories.md` — detailed per-tool breakdown and62 installation instructions6364## Extending6566The required/optional split lives in `assets/check-tools.sh`67(`check_required_tool` / `check_optional_tool` calls), not in this file — to68change which tools are required, edit the script.