一键导入
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