doctorlisted
Install: claude install-skill Adilmunawar/ZD-claude-plugin
Run each check with Bash (Windows: PowerShell equivalents) and print a table `Check | Status | Fix`:
| Check | Command |
|---|---|
| Node ≥ 18 (hooks) | `node --version` |
| Claude Code version | `claude --version` |
| Modules installed | `claude plugin list` → expect zd-core, zd-gis, zd-vector, zd-models, zd-ml, zd-gee, zd-agis, zd-mobile, zd-deploy, zd-quality, zd-security, zd-ops, zd-usage, zd-reports |
| Python ≥ 3.10 | `python --version` / `python3 --version` |
| GeoPandas / rasterio / shapely ≥ 2 | `python -c "import geopandas, rasterio, shapely; print(shapely.__version__)"` |
| GDAL CLI | `ogr2ogr --version` |
| .NET SDK (if a .csproj exists) | `dotnet --version`; `dotnet ef --version` |
| Node project tooling (if package.json) | `npm --version`; `npx expo --version` for Expo apps; `firebase --version` for Firebase projects |
| Committed secrets | `node <zd-core>/scripts/secrets-audit.js .` → expect no findings |
| DB client | `psql --version` / `sqlcmd -?` / `sqlite3 --version` — whichever the repo's DB needs |
| Earth Engine (if used) | `python -c "import ee"` and `GEE_KEY_FILE` env var set (don't print it) |
| Secrets hygiene | `.gitignore` contains `.env`, `gee.json`, `*.pem`; no such files tracked (`git ls-files | grep -E "\.env$|gee\.json"`) |
| Large files | `git ls-files -z | xargs -0 du -k 2>/dev/null | awk '$1>51200'` → should be empty |
| CLAUDE.md present | exists at repo root; suggest `/zd-core:onboard` if not |
| Team settings | `.claude/settings.json` h