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
make build-all make build-esp32 make robocar-build-all make robocar-build-main make robocar-build-cam make esp32-webserver-build make esp32-audio-build make llm-telegram-build
Flash Commands
make robocar-flash-main PORT=/dev/ttyUSB0 make robocar-flash-cam PORT=/dev/ttyUSB0 make esp32-webserver-flash PORT=/dev/ttyUSB0 make esp32-audio-flash PORT=/dev/ttyUSB0 make llm-telegram-flash PORT=/dev/ttyUSB0
Monitor Commands
make robocar-monitor-main PORT=/dev/ttyUSB0 make robocar-monitor-cam PORT=/dev/ttyUSB0 make esp32-webserver-monitor PORT=/dev/ttyUSB0
Clean Commands
make clean-all make robocar-clean make esp32-clean make llm-telegram-clean
Development Workflows
make robocar-develop-main PORT=/dev/ttyUSB0 make robocar-develop-cam PORT=/dev/ttyUSB0 make llm-telegram-develop PORT=/dev/ttyUSB0
Code Quality
make lint make lint-c make lint-python make format make format-check
Safety Checks
Before Flashing ESP32-CAM
-
Remind user about GPIO0 → GND requirement
-
Verify port is specified or use default
-
Confirm device is connected
Before Clean Operations
-
Confirm user intent (data loss prevention)
-
List what will be cleaned
Port Validation
Common ports:
-
macOS: /dev/cu.usbserial-*
-
Linux: /dev/ttyUSB* , /dev/ttyACM*
-
Windows: COM*
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" → make robocar-build-main
Flash with specific port
"Flash the camera to /dev/ttyUSB0" → Remind about GPIO0, then make robocar-flash-cam PORT=/dev/ttyUSB0
Full development workflow
"I want to work on the telegram bot" → make llm-telegram-develop PORT=/dev/ttyUSB0
Check code quality
"Run the linters" → make lint