| name | safe-build-operations |
| description | Safely execute build, flash, and monitor operations for ESP32/MCU projects. Prevents dangerous operations and validates commands before execution. |
| user-invocable | false |
| allowed-tools | Bash(just:*), Bash(docker:*), Bash(esptool*), Bash(ls:*), Bash(pwd:*), Read, Glob, Grep |
Safe Build Operations Skill
This skill enables safe execution of build system operations with appropriate safeguards.
When to Use
- Building firmware projects
- Flashing devices
- Monitoring serial output
- Cleaning build artifacts
- Running development workflows
Permitted Operations
Build Commands (containerized)
just build-all
just robocar::build-all
just robocar::build-main
just robocar::build-cam
just webserver::build
just i2s-audio::build
just telegram::build
just kids-audio::build
just xbox::build
just wifitest::build
Flash Commands (native — ports auto-detected)
just robocar::flash-main
just robocar::flash-cam
just webserver::flash
just i2s-audio::flash
just telegram::flash
just kids-audio::flash
just xbox::flash
just wifitest::flash
Monitor Commands (native)
just robocar::monitor-main
just robocar::monitor-cam
just webserver::monitor
just i2s-audio::monitor
just telegram::monitor
just xbox::monitor
Clean Commands
just clean-all
just robocar::clean-all
just webserver::clean
just telegram::clean
Development Workflows (build + flash + monitor)
just robocar::develop-main
just robocar::develop-cam
just webserver::develop
just telegram::develop
Code Quality
just lint
just lint-c
just lint-python
just format
just format-check
Safety Checks
Before Flashing ESP32-CAM
- Remind user about GPIO0 → GND requirement
- Port is auto-detected from
tools/esp32.just — verify with just <module>::info
- Override with:
PORT=/dev/... just <module>::flash
Before Clean Operations
- Confirm user intent (data loss prevention)
- List what will be cleaned
Port Auto-Detection
- USB-serial adapters (CH340/CP2102): auto-detected via
/dev/cu.usbserial-*
- ESP32-S3 native USB: auto-detected by Espressif VID
0x303a
- Override with
PORT env var
Prohibited Operations
This skill does NOT allow:
- Arbitrary shell commands
- File deletion outside build directories
- Network operations
- Git operations (use dedicated commands)
- System configuration changes
Usage Examples
Build a project
"Build the robocar main controller"
→ just robocar::build-main
Flash with specific port
"Flash the camera to /dev/ttyUSB0"
→ Remind about GPIO0, then PORT=/dev/ttyUSB0 just robocar::flash-cam
Full development workflow
"I want to work on the telegram bot"
→ just telegram::develop
Check code quality
"Run the linters"
→ just lint