arduino-code-generator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited arduino-code-generator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generate production-quality Arduino code snippets for sensors, actuators, communication, and embedded patterns.
Browse example sketches:
# See 9 production-ready examples in examples/ folder
ls examples/
# config-example.ino, filtering-example.ino, buttons-example.ino,
# i2c-example.ino, csv-example.ino, scheduler-example.ino,
# state-machine-example.ino, hardware-detection-example.ino,
# data-logging-example.inoList available patterns:
uv run scripts/generate_snippet.py --listGenerate code for specific pattern and board:
uv run scripts/generate_snippet.py --pattern i2c --board esp32
uv run scripts/generate_snippet.py --pattern buttons --board uno --output button.inoInteractive mode:
uv run scripts/generate_snippet.py --interactiveSee patterns-config.md | Example: config-example.ino
See patterns-filtering.md | Example: filtering-example.ino
See patterns-buttons.md | Example: buttons-example.ino
See patterns-i2c.md and patterns-csv.md | Examples: i2c-example.ino, csv-example.ino
See patterns-scheduler.md and patterns-state-machine.md | Examples: scheduler-example.ino, state-machine-example.ino
See patterns-hardware-detection.md | Example: hardware-detection-example.ino
See patterns-data-logging.md | Example: data-logging-example.ino
When user requests Arduino code:
#include statementsmillis() instead of delay() for timingAll generated code must:
User: "Generate code to read a DHT22 sensor without blocking" → Read patterns-filtering.md → Generate DHT22 + EveryMs pattern
User: "Create a button handler with long press detection" → Read patterns-buttons.md → Generate DebouncedButton with events
User: "Make an I2C scanner for my Arduino" → Read patterns-i2c.md → Generate scanner with diagnostics
User: "Log data to SD card every 10 seconds" → Read patterns-data-logging.md → Generate buffered CSV logger
❌ Never use delay() for timing (blocks execution) ❌ Never use signed types for millis() comparisons ❌ Never forget to call begin() on peripherals ❌ Never assume hardware is present without checking ❌ Never mix polling and interrupt-based input
✅ Use millis() for non-blocking timing ✅ Use unsigned long for time variables ✅ Check return values from peripheral init ✅ Provide fallback for missing hardware ✅ Choose one input strategy per button
Combine multiple patterns for complex projects:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.