domain-iot — Claude Code skill: IoT rules for Rust
This skill turns IoT constraints into Rust design choices: the network drops, power is scarce, the device is physically reachable. It steers the agent toward buffering, retries and TLS.
npx skills add actionbook/rust-skills --skill domain-iot -a claude-codeWhat domain-iot does
The skill frames IoT as a set of constraints that drive design. An unreliable network pushes you to offline-first with a local queue; battery power pushes you to sleep modes and minimal allocations; tight resources push you to no_std where it fits. Security sits alongside: encrypted traffic and signed firmware, since someone can walk up to the device.
Inside are tables mapping a domain rule to a design constraint and then to a Rust practice, a list of common mistakes, and an MQTT client example built on rumqttc that subscribes to commands and publishes telemetry. Environments are compared too: a Linux gateway on tokio and std, an MCU on embassy and no_std, or a split hybrid. Crates for MQTT, embedded work, async and logging are named.
The skill is not user-invocable, so there is no slash command to type — it loads as context and kicks in when the agent writes device code. It points at related skills: domain-embedded, m07-concurrency, m13-domain-error, m10-performance. On a non-Rust project most of it goes unused, because every table and example is tied to Rust crates.
What it helps with
- map IoT constraints onto concrete code decisions
- pick between
stdandno_stdfor a gateway and an MCU - add a local queue so telemetry survives a network outage
- choose crates for MQTT, async and logging
- spot mistakes like an always-on radio or plaintext MQTT
Example prompts for the agent
- help me design an MQTT client with rumqttc for a battery-powered device
- how should store-and-forward work when the network drops for hours
- review my IoT code for retry, sleep modes and encryption issues
How to install domain-iot
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill domain-iot -a claude-code2Manually: put the files in place
~/.claude/skills/domain-iot/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/domain-iot/
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill domain-iot -a codex2Manually: put the files in place
.agents/skills/domain-iot/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill domain-iot -a cursor2Manually: put the files in place
.cursor/skills/domain-iot/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills domain-iot2Manually: put the files in place
.github/skills/domain-iot/SKILL.md1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill domain-iot -a gemini-cli2Platform CLI
gemini skills install https://github.com/actionbook/rust-skills --path skills/domain-iotManually: put the files in place
.devin/skills/domain-iot/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill domain-iot -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about domain-iot
How do I install domain-iot in Claude?
Run npx skills add actionbook/rust-skills --skill domain-iot -a claude-code. The skill file lands at ~/.claude/skills/domain-iot/SKILL.md.
What does domain-iot do?
It lays out IoT constraints and translates them into Rust decisions: a local buffer, retry with backoff, sleep modes, TLS. The agent leans on it while writing device and gateway code.
Which platforms can use this skill?
Besides Claude, install commands exist for Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode. The examples are Rust, so a project in another language gets little from it.