plugins/development-tools/skills/check-tools/SKILL.md
Validates development tool installations across Python, Node.js, Java, Go, Rust, C/C++, Git, and system utilities. Use when verifying environments or troubleshooting dependencies.
npx skillsauth add oaustegard/claude-skills check-toolsInstall 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.
Systematically verify tool presence and versions across major programming ecosystems. Provide actionable feedback about availability and validate complete toolchains with awareness of interdependencies (e.g., Node.js requires npm).
This skill supports flexible validation modes:
Default behavior reports all tools without failing validation, suitable for diverse PaaS environments.
Trigger this skill when working on:
Core Tools (typically available):
python3, python - Python interpreters ✅pip - Package installer ✅uv - Fast Python package installer ✅Development Tools (install as needed):
poetry - Dependency management and packagingblack - Code formattermypy - Static type checkerpytest - Testing frameworkruff - Fast Python linterValidation Pattern:
if command -v python3 &> /dev/null; then
python3 --version
fi
Core Tools (typically available):
node - Node.js runtime ✅npm - Package manager ✅Development Tools (install as needed):
nvm - Node version manageryarn - Fast, reliable package managerpnpm - Efficient disk space package managereslint - JavaScript linterprettier - Code formatterchromedriver - Browser automationValidation Pattern:
if command -v node &> /dev/null; then
node --version
# Check for multiple Node versions via nvm
if [[ -s "/opt/nvm/nvm.sh" ]]; then
source "/opt/nvm/nvm.sh"
nvm list
fi
fi
Core Tools (typically available):
java - Java runtime and compiler ✅Build Tools (install as needed):
mvn - Maven build toolgradle - Gradle build toolValidation Pattern:
if command -v java &> /dev/null; then
java -version 2>&1 | head -3
fi
Development Tools (install as needed):
go - Go compiler and toolchainValidation Pattern:
if command -v go &> /dev/null; then
go version
fi
Development Tools (install as needed):
rustc - Rust compilercargo - Rust package manager and build toolEnvironment Setup:
# Source cargo environment if it exists
if [[ -f "$HOME/.cargo/env" ]]; then
source "$HOME/.cargo/env"
fi
Core Tools (typically available):
gcc - GNU Compiler Collection ✅Build Tools (install as needed):
clang - LLVM C/C++ compilercmake - Cross-platform build systemninja - Small build system with focus on speedconan - C/C++ package managerValidation Pattern:
if command -v gcc &> /dev/null; then
gcc --version | head -1
fi
Core Tools (typically available):
git - Version control ✅curl - Data transfer tool ✅awk - Pattern scanning and processing ✅sed - Stream editor ✅grep - Pattern matching ✅gzip - File compression ✅tar - Archive utility ✅make - Build automation ✅Development Tools (install as needed):
jq - JSON processorrg (ripgrep) - Fast text searchtmux - Terminal multiplexeryq - YAML processorvim - Vi improvednano - Simple text editorCombine tool detection with version extraction:
check_tool() {
local tool=$1
local required=${2:-false}
if command -v "$tool" &> /dev/null; then
echo "✅ $tool: $($tool --version 2>&1 | head -1)"
return 0
else
if [[ "$required" == "true" ]]; then
echo "❌ $tool: not found (REQUIRED)"
return 1
else
echo "⚠️ $tool: not found (optional)"
return 0
fi
fi
}
# Usage
check_tool python3 true # Required
check_tool poetry false # Optional
Some tools require environment setup before detection:
# Load version managers if present
[[ -f "$HOME/.nvm/nvm.sh" ]] && source "$HOME/.nvm/nvm.sh"
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
# Then check tools
check_tool node true
check_tool cargo false
Group tools by ecosystem for clarity:
=================== Python ===================
✅ python3: Python 3.11.4
✅ pip: pip 23.1.2
✅ poetry: Poetry (version 1.5.1)
❌ mypy: not found
=================== NodeJS ===================
✅ node: v20.5.0
✅ npm: 9.8.0
...
Create visually appealing output for tool reports:
cat << 'EOF'
_____ _ _ _____ _
/ ____| | | | / ____| | |
| | | | __ _ _ _ __| | ___ | | ___ __| | ___
| | | |/ _` | | | |/ _` |/ _ \ | | / _ \ / _` |/ _ \
| |____| | (_| | |_| | (_| | __/ | |___| (_) | (_| | __/
\_____|_|\__,_|\__,_|\__,_|\___| \_____\___/ \__,_|\___|
Development Environment Tool Versions
=====================================
EOF
When setting up development containers, validate that all required tools are installed:
#!/bin/bash
# Validate Python data science environment
check_tool python3 "required"
check_tool pip "required"
check_tool jupyter "required"
check_tool pandas "optional - data analysis"
check_tool numpy "optional - numerical computing"
Add environment validation as the first step in CI pipelines:
# .github/workflows/validate.yml
steps:
- name: Validate Build Environment
run: |
./scripts/check-tools.sh
if [ $? -ne 0 ]; then
echo "Build environment validation failed"
exit 1
fi
validate_python_tools() {
local failed=0
for tool in python3 pip poetry pytest black; do
if ! command -v "$tool" &> /dev/null; then
echo "❌ $tool: not found"
failed=1
else
echo "✅ $tool: $($tool --version 2>&1 | head -1)"
fi
done
return $failed
}
case "$(uname -s)" in
Linux*) check_linux_tools ;;
Darwin*) check_macos_tools ;;
esac
tool --version 2>&1 | head -1| Ecosystem | Core (typically present) | Optional (install as needed) | |-----------|-------------------------|------------------------------| | Python | python3, pip, uv | poetry, black, mypy, pytest, ruff | | Node.js | node, npm | nvm, yarn, pnpm, eslint, prettier | | Java | java | maven, gradle | | Go | - | go | | Rust | - | rustc, cargo | | C/C++ | gcc | clang, cmake, ninja, conan | | Utils | git, curl, awk, grep, sed, tar, make, gzip | jq, rg, tmux, yq, vim, nano |
Use check_required_tool for core tools, check_optional_tool for others.
DO: Use command -v for detection, source environments (nvm, cargo) first, handle stderr for versions, group by ecosystem, return proper exit codes
DON'T: Assume paths, hardcode locations, ignore stderr, mark all tools as required
assets/check-tools.sh: Focused development tool validation script (exit codes, quick checks)assets/environment-diagnostic.sh: Comprehensive system and tool diagnostic with three modes:
tools - Development tools only (fast validation)system - System info, hardware, mounts, processesfull - Complete diagnostic with package inventoriesreferences/tool-categories.md: Detailed breakdown of tools by category with installation instructionsBefore delivering, verify:
_____ _ _ _____ _
/ ____| | | | / ____| | |
| | | | __ _ _ _ __| | ___ | | ___ __| | ___
| | | |/ _` | | | |/ _` |/ _ \ | | / _ \ / _` |/ _ \
| |____| | (_| | |_| | (_| | __/ | |___| (_) | (_| | __/
\_____|_|\__,_|\__,_|\__,_|\___| \_____\___/ \__,_|\___|
Development Environment Tool Versions
=====================================
=================== Python ===================
✅ python3: Python 3.12.3
✅ pip: pip 24.0
✅ uv: uv 0.9.2
⚠️ poetry: not found (optional)
⚠️ black: not found (optional)
⚠️ mypy: not found (optional)
⚠️ pytest: not found (optional)
⚠️ ruff: not found (optional)
=================== NodeJS ===================
✅ node: v22.20.0
✅ npm: 10.9.3
⚠️ nvm: not found (optional)
⚠️ yarn: not found (optional)
⚠️ pnpm: not found (optional)
=================== Java ===================
✅ java: openjdk 11.0.25 2024-10-15
⚠️ mvn: not found (optional)
⚠️ gradle: not found (optional)
=================== C/C++ ===================
✅ gcc: gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
=================== System Utilities ===================
✅ git: git version 2.34.1
✅ curl: curl 7.81.0
✅ awk: GNU Awk 5.1.0
✅ sed: sed (GNU sed) 4.8
✅ grep: grep (GNU grep) 3.7
⚠️ jq: not found (optional)
⚠️ rg: not found (optional)
=================== Summary ===================
✅ All required tools present
(Optional tools marked with ⚠️ can be installed as needed)
# Fast tool check (exit code validation)
bash assets/check-tools.sh
# Development tools only
bash assets/environment-diagnostic.sh tools
# System diagnostics only
bash assets/environment-diagnostic.sh system
# Complete diagnostic with report
bash assets/environment-diagnostic.sh full /path/to/report.txt
check-tools.sh (fast, exit code based)environment-diagnostic.sh full (comprehensive)environment-diagnostic.sh tools with package listscheck_required_tool and check_optional_tool callsBoth scripts support minimal PaaS environments and full development setups.
development
Write effective instructions for Claude: project instructions, standalone prompts, and skill content. Use when users need help writing prompts, setting up project instructions, choosing between instruction formats, or improving how they communicate with Claude. Covers writing principles, model-aware calibration, and format selection. For building and testing complete skills, use skill-creator instead.
data-ai
Discover and load skills on demand from /mnt/skills/user/. Use when you need a capability but don't know which skill provides it, when the boot-emitted skill list is names-only and you need a full description, or when you want to list the catalog. Verbs are list (names only), search (rank by name/description match against a query), and show (emit the full SKILL.md for a named skill).
documentation
Reads the visual content of slides, pages, and images the way a human would, not just their embedded text. Use when a PPTX or PDF has image slides, screenshots, charts, scanned figures, or flattened-to-image layouts that the built-in pptx/pdf skills read as empty; when asked to transcribe, describe, OCR, or extract what is shown in an image, slide deck, or document page; or when embedded-text extraction returned little or nothing from a visually rich file. Triggers on 'read this deck', 'what's on these slides', 'transcribe', 'OCR', 'extract text from image', 'describe this chart/diagram', .pptx/.pdf/.png/.jpg with visual content.
development
Portrait Mode for SVGs — foveated vectorization with 4-zone selective detail. Combines vision annotations, MediaPipe segmentation/landmarks, and optional saliency. Like phone portrait mode, but vectorized. Use when vectorizing a portrait or photo where subject detail should outrank background detail.