Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Arduino Developer

ASecurity

Implement or fix Arduino sketches and libraries using the project-declared board, Arduino Core, version, and tooling. Use for Arduino IDE/CLI or configured PlatformIO work when invoking arduino-developer.

6 stars
0 votes
0 copies
0 views
Added 10/6/2026
ai-agentspythonshellrailscode-reviewapisecuritydocumentation

Works with

cliapi

Security Analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned 10/6/2026

$npx -y skills add tibursocampos/agent-dev-toolkit --skill arduino-developer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Arduino Developer?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Arduino Developer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tibursocampos-arduino-developer/badge)](https://www.skillsdirectory.com/skills/tibursocampos-arduino-developer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: arduino-developer
description: >-
  Implement or fix Arduino sketches and libraries using the project-declared board, Arduino Core, version, and tooling. Use for Arduino IDE/CLI or configured PlatformIO work when invoking arduino-developer.
---

## STOP - Read before ANY tool call

1. Read `{{GUARDRAILS_PATH}}`
2. Read `_shared/sdd-artifacts/SESSION.md`; load session-state for `$Cwd`
3. If the relevant gate is not approved: **STOP** - ask user **(pt-BR)** - do **NOT** Write/Shell
4. SDD/develop skills: after **ONE** step/task, **STOP** session - handoff only
5. This skill body is **English**; user-facing prompts may be **(pt-BR)**

### Step -1 - Gate check (report in chat before continuing)

```
Gate check:
[ ] guardrails.mdc read
[ ] SESSION.md read; session-state loaded
[ ] PIPELINE.md read (SDD skills only)
[ ] User confirmed current action (sim)
-> If any unchecked: STOP
```

---

# Skill: arduino-developer

## Trigger

Invoke `arduino-developer` for Arduino sketches, libraries, board-specific firmware, or Arduino Core projects. Host examples: `/arduino-developer`, `$arduino-developer`, `use skill arduino-developer`.

## Outcome

A configuration-aware implementation or diagnosis for the declared Arduino target. The skill identifies the board/module and revision, Arduino Core and version, dependency provenance, and the configured toolchain before recommending APIs or commands. It reports compile-only, upload, device runtime, and HIL evidence separately.

## Lazy-load

| When | Path |
|------|------|
| Scope and framework boundary | `references/scope.md` |
| Orientation and execution flow | `references/execute-flow.md` |
| Forbidden assumptions and reporting limits | `references/must-not.md` |
| Embedded context and provenance | `{{TOOLKIT_ROOT}}/skills/_shared/embedded-guidelines/README.md`, `target-and-provenance.md`, `validation-and-reporting.md` |
| Resources and communication | `{{TOOLKIT_ROOT}}/skills/_shared/embedded-guidelines/resources-and-communication.md` |
| Security and dependencies | `{{TOOLKIT_ROOT}}/skills/_shared/embedded-guidelines/security-and-dependencies.md` |
| Repo context | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-0-context.md` |
| Before coding | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-0.5-review-guidelines.md` |
| Structure / quality | `{{TOOLKIT_ROOT}}/skills/_shared/code-guidelines/principles/structure-and-quality.md` |
| Branching | `{{TOOLKIT_ROOT}}/rules/branch-validation.mdc`, `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-3-branching.md` |
| Pre-commit | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-3.5-precommit-validation.md` |
| Commit / PR | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-4-commits-pr.md` |
| Pre-PR gate | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-7-checklist.md` |
| Subagent-first / SPAWN.md | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/subagent-first.md`, `{{TOOLKIT_ROOT}}/skills/_shared/agents/SPAWN.md` |
| Context pressure | `{{TOOLKIT_ROOT}}/rules/context-management.mdc` |

Do not preload unrelated stack packs or the whole memory bank. Load only the embedded topic needed for the current claim.

**Never by default:** do not preload all `references/*.md`, unrelated embedded or stack guideline packs, or target-specific hardware documentation. Load only the reference needed for the current claim after the board, core, version, tooling, and validation boundary are identified.

## Process

### Step -1b - Caveman Mode (Full cap)

1. Read `{{SDD_ROOT}}/preferences.json`.
2. If `caveman_mode` is false, continue normally.
3. If true, load `_shared/caveman/CAVEMAN.md`, apply the Full cap, and honor the session commands.

### Subagent-first (before implement)

Classify complexity, consult capability `subagents`, and load `SPAWN.md` plus `subagent-first.md`. Medium or complex work may use up to two children with scoped **paths** and a **receipt**; trivial work stays **in-parent**. If unavailable, use the documented **fallback** **in-parent** path.

### 0. Establish the target context

Inspect the project before choosing an Arduino flow. Record each field as `confirmed`, `assumed`, `planned`, `implemented`, or `verified`:

| Field | Required evidence |
|------|-------------------|
| Target | board/module, architecture, variant, and revision |
| Runtime and core | Arduino runtime, Arduino Core family, exact version, and dependency source |
| Tooling | Arduino IDE/CLI or project-configured PlatformIO and its version |
| Source and hardware provenance | project metadata, board specification, datasheet, measurement, or operator input |
| Validation boundary | host-only, compile-only, device runtime, or HIL, with target and scenario |

If a material field is absent, ask for it or report the work as blocked. Do not select a board, core, API, pin, command, or capability from a family name alone.

### Framework and toolchain decision

Treat the framework and the toolchain as separate decisions. Before routing or recommending a command, require project evidence for all of the following:

| Decision | Acceptable evidence | Result when absent |
|---|---|---|
| Arduino framework/core | explicit Arduino Core or Arduino framework declaration, dependency metadata, Arduino CLI/IDE project metadata, or operator-provided project evidence | do not route to this skill; ask for the framework and exact version |
| Arduino Core version | pinned dependency/platform version, lockfile, package metadata, or an explicit project record | block version-sensitive guidance; do not infer it from the board or library name |
| Build/upload tool | Arduino IDE/CLI configuration or command evidence; `platformio.ini`/equivalent with `framework = arduino` for PlatformIO | ask which configured tool is authoritative; do not introduce a tool |
| Debug capability | configured debugger/probe and target support, plus an observed debug session or project declaration | report debug as unavailable or unverified; do not equate compilation or serial logs with debug |

For ESP32 or ESP8266, a board name is never framework evidence. A native ESP-IDF project identified by `idf_component.yml`, `idf_component_register`, ESP-IDF CMake structure, `sdkconfig`, or `idf.py` scripts remains ESP-IDF-owned even when the board is ESP32/ESP8266. Route by the declared project framework, not by the board family. Keep MicroPython firmware and CPython host code outside this skill.

### 1. Classify the Arduino artifact

Handle `.ino` sketches, Arduino libraries, and board-specific firmware according to the project’s existing layout and dependency metadata. Preserve the declared library/core versions and source provenance. Do not add a build system or dependency merely to fill a missing context.

For ESP32 or ESP8266, require evidence that the project uses the Arduino Core. Arduino Core may use platform internals, but it remains distinct from native ESP-IDF. Route native ESP-IDF projects to their own workflow; route MicroPython firmware to its own workflow; keep CPython host tools and tests with `python-developer`.

### 2. Choose tooling from configuration

Use Arduino IDE or Arduino CLI only when the project configuration, scripts, metadata, or operator evidence identifies it. Use PlatformIO only when its project configuration is present and relevant. Do not make PlatformIO the default and do not substitute `idf.py`, CMake, MicroPython tooling, or CPython commands for an Arduino flow without evidence.

If PlatformIO is selected, confirm that the relevant environment declares the Arduino framework; a `platformio.ini` containing only a board/platform name is insufficient. If native ESP-IDF signals are present without an Arduino framework declaration, stop the Arduino flow and hand off to the ESP-IDF workflow. If neither framework nor toolchain is identifiable, request the smallest missing project evidence or report a bounded blocker.

### 3. Implement and report narrowly

Apply the project’s selected core and board APIs, then label each result separately:

- compile-only: source/toolchain compatibility for the declared target;
- upload: firmware transfer observed with the named board, port, and tool;
- debug: an observed breakpoint/trace/debug-session result using the named debugger/probe and target configuration;
- device runtime: behavior observed on the named board/revision and configuration;
- HIL: behavior observed with the named fixture, instruments, and scenario.

A successful compile does not prove upload, debug, startup, peripherals, timing, electrical safety, runtime, or HIL. Serial output, logging, and a successful upload are not debug evidence. If the tool, board, core, version, or provenance is insufficient, request the missing data or stop with a bounded blocker.

### 4. Review safety boundaries

Keep Arduino Cloud guidance limited to firmware integration. Do not include dashboard or service administration. Never place credentials in source, examples, logs, or evidence. Qualify TLS, OTA, storage, memory, timing, pinout, voltage, and current claims by target, revision, library/core version, and authoritative source.

## Must not

- Infer Arduino Core, ESP-IDF, MicroPython, or CPython from a board or family name alone.
- Treat native ESP-IDF as an Arduino implementation or reuse `idf.py` without project evidence.
- Treat a compile result as upload, device runtime, or HIL evidence.
- Treat compile, upload, serial logging, or runtime observations as debug evidence without an observed debugger/probe session.
- Presume a universal Arduino IDE, CLI, PlatformIO, board revision, core version, pin map, TLS behavior, or OTA capability.
- Put secrets, real credentials, or private keys in examples, logs, fixtures, or evidence.
- Expand Arduino Cloud into dashboards or administration.
- Paste guideline packs into child prompts, spawn for trivial work, or hard-fail when `subagents` is `none` or Task is unavailable; use scoped paths, receipt, and fallback in-parent behavior.
- Auto-commit, auto-push, or claim hardware validation that was not exercised.

## Handoff

For a larger approved change, use `sdd-develop` with the canonical PLAN path. For a commit, use `commit`; for review, use `code-review`.

Attribution

tibursocampostibursocampos
View sourceSee grades on GitHubMore from tibursocampos →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →