بنقرة واحدة
check-tool
Check whether a CLI tool or package is available; if not, ask the user to install it before continuing
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Check whether a CLI tool or package is available; if not, ask the user to install it before continuing
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Verify the project's hard memory + storage budgets — definite-leak-free under valgrind, peak host-heap below the v2 ceiling, ESP32 flash + RAM headroom non-negative, and (informational) RTC-Slow-Memory budget. Use when the user asks to "check budgets", "verify no leaks", "measure peak heap", "is the firmware too big", or as the §9 Heap-Profiling gate before tagging v2.0.0. Do NOT invoke as a side-effect of an unrelated build/test failure — it costs ~5–10 minutes wall-clock.
Convert PGM dumps (from `make test-native`) to PNG using the existing `scripts/pgm-to-png.py` converter — never reach for `convert`/`magick`/`ffmpeg`/PIL one-liners/`for`-loops. The script already handles batch mode (whole `.tmp/v2-pgm/`), single-file mode, and `--bands` for pixel-band Y-ranges. Use whenever the user asks to convert, visualize, render, or "look at" PGM output, or asks for pixel-band/Y-range info.
Run clang-format (auto-fix) across every C/C++ file in the repo and report what was changed; then run cppcheck and surface any remaining static-analysis warnings as a punch list. Mirrors fix-markdown — formatter auto-fixes, linter reports. Use when the user asks to "fix the C++ lint issues", "format the C++ code", or "run the C++ linters". Do NOT invoke as a side-effect to clear an unrelated hook failure.
Cut a new tagged release of bustaferl. Enforces the Tier 2/3 test-gate (host + device + soak), composes release notes from git log, and creates an annotated tag. Use when the user wants to "tag a release", "ship v1.x", "cut a release", or asks to verify pre-tag readiness. Optional `--major` flag adds the 24h test gate. Refuses if tests are stale or rot, blocks force-push to main.
Auto-fix markdown lint issues across all .md files and report what changed
| name | check-tool |
| description | Check whether a CLI tool or package is available; if not, ask the user to install it before continuing |
Use this skill whenever you are about to run a command or import a library and you are not certain it is installed. Do not attempt workarounds or reimplement the tool's logic. One check, then ask.
Invoke proactively before:
markdownlint, clang-tidy,
jq, ajv, jsonschema)npx-runnable tool when node_modules may not be presentCheck availability using the lightest possible probe:
| Tool type | Probe command |
|---|---|
| CLI binary | which <tool> 2>/dev/null || command -v <tool> 2>/dev/null |
| Python package | python -c "import <pkg>" 2>/dev/null (exit 0 = present) |
| npm package (global) | npm list -g --depth=0 <pkg> 2>/dev/null |
| npx-runnable | npx --no-install <tool> --version 2>/dev/null |
If found: proceed silently — do not mention the check.
If not found: stop immediately and ask the user using this exact message pattern:
I need
<tool>to continue but it isn't installed. Can you install it?Suggested install command:
<install command>Let me know when it's ready and I'll continue.
Then wait — do not attempt alternatives, do not reimplement the logic in shell or Python, do not proceed with the task.
| Tool | Suggested install |
|---|---|
jsonschema (Python) | pip install -r requirements.txt (declared in project requirements.txt) |
markdownlint-cli | npm install -g markdownlint-cli |
clang-tidy | sudo apt install clang-tidy (Ubuntu) / install via LLVM (Windows) |
jq | sudo apt install jq (Ubuntu) / winget install jqlang.jq (Windows) |
ajv-cli | npm install -g ajv-cli |
mmdc (Mermaid) | npm install -g @mermaid-js/mermaid-cli |
For anything not listed, suggest the most obvious package manager command for the
current OS (check /os-context if unsure).
npx, a full path, or a venv as a fallback after the first check fails